如何将一些数据添加到 mysql 结果集中?
How do i add some data to a mysql resultset?
正如第一条评论所建议的,我将尝试简化我的问题:
我知道了 table:
`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 查询选择多边形内的所有字段和每个数据并在结果集中创建一个新列,如下所示:
<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
正如第一条评论所建议的,我将尝试简化我的问题:
我知道了 table:
`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 查询选择多边形内的所有字段和每个数据并在结果集中创建一个新列,如下所示:
<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