【问题标题】:How do i add some data to a mysql resultset? [closed]如何将一些数据添加到 mysql 结果集中? [关闭]
【发布时间】:2015-04-25 17:25:33
【问题描述】:

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

我得到了这张桌子:

  `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

【问题讨论】:

  • 谈论Wall Of Text - 3行后放弃:) 请尝试将问题表达得更具可读性
  • 我阅读了您的评论并尽力而为。我希望你能帮助我。

标签: php mysql google-maps mariadb


【解决方案1】:

您可以使用 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 的资源:@​​987654321@

【讨论】:

  • 我会试试的。谢谢。如果有人提供其他选择,我也会尝试。我认为这类主题的答案不止一个,它们可以帮助许多其他人。
猜你喜欢
  • 1970-01-01
  • 2013-01-03
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 2015-02-08
相关资源
最近更新 更多