php - 如何将一些数据添加到 mysql 结果集中?

标签 php mysql google-maps mariadb

正如第一条评论所建议的,我将尝试简化我的问题:

我得到了这张表:

  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `name` VARCHAR( 60 ) NOT NULL ,
  `address` VARCHAR( 80 ) NOT NULL ,
  `coords` SPATIAL NOT NULL ,
  `qual` INT(3) NOT NULL;

我得到了这些数据:

Pan Africa Market, Seattle, 47.608941 -122.340145,-65
Buddha Thai & Bar, Seattle, 47.613591 -122.344394,-30
The Melting Pot, Seattle, 47.624562 -122.356442,-75
Ipanema Grill, Seattle, 47.606366 -122.337656,-90
Sake House, Seattle, 47.612820 -122.34567,-69
Crab Pot, Seattle, 47.605961 -122.34036,-70
Mama Mexican Kitchen, Seattle, 47.613975 -122.345467,-44
Wingdome, Seattle, 47.617215 -122.326584,-57
Piroshky Piroshky, Seattle, 47.610127 -122.342838,-100

如何为 MariaDB 或 MySQL 进行 SQL 查询,选择多边形内的所有字段和每个数据,并在结果集中创建一个新列,如下所示:

<name="Pan Africa Market" address="Seattle" coords="47.608941 -122.340141" qual="-65" icon="3"/>

满足以下条件:

if qual>-10 then new column = 0,
if -10>qual>-30 then icon = 1,
if -30>qual>-50 then icon = 2,
if -50>qual>-70 then icon = 3,
if -70>qual>-90 then icon = 4,
if -90>qual then new icon = 5

最佳答案

您可以使用 Case 语句来执行此操作。我相信以下语句应该为您提供一个像您正在寻找的列(您可以将 select 和 from 之间的所有内容附加到您在结果集中指定的其余列)。

SELECT (CASE WHEN (`qual` > -10) THEN 0
WHEN (`qual` < -10 && `qual` > -30) THEN 1
WHEN (`qual` < -30 && `qual` > -50) THEN 2
WHEN (`qual` < -50 && `qual` > -70) THEN 3
WHEN (`qual` < -70 && `qual` > -90) THEN 4
WHEN (`qual` < -90) THEN 5 END) AS icon
FROM tablename

如果语法不太正确,我深表歉意,因为我大部分时间都花在 T-SQL 上,但这应该可行。如果您需要稍微调整一下,这里是 CASE 的资源:MySQL: Case

关于php - 如何将一些数据添加到 mysql 结果集中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868423/

相关文章:

angularjs - 在 google map api v3 和 angularJS 上点击鼠标获取坐标

php - 你可以在 PHP 中使用 REST 吗?如果有怎么办?

mysql - 由于引用同一个表而受到外键的插入约束

php - 将页面保存为 PDF 或 HTML,但包含所有条目

php - 如何使用 ci 事件记录排除与某些标签关联的数据库条目

php - 使用 PHP 和 AJAX,两个客户端可以在没有 MySQL 的情况下相互交换数据吗?

android - getCurrentPlace 只给出 20 个结果,过滤器不起作用

Android:从 Intent 打开 Google Navigation 应用程序

php - 在单元测试中处理 Laravel HttpException

php - php 中的动态 url 或页面