Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用MySQL和group_concat变量创建新行_Php_Mysql_Google Maps - Fatal编程技术网

Php 使用MySQL和group_concat变量创建新行

Php 使用MySQL和group_concat变量创建新行,php,mysql,google-maps,Php,Mysql,Google Maps,我想从下面的MySQL表中选择一些值。我只想在koords值匹配时才对战术变量和ID变量进行压缩。查询的输出应该包含表中的所有行,用一行替换重复的行。 简而言之,如果两行在纬度和经度值上匹配,我想将两行合并为一行。并将多个值连接到列中。 这可能吗 原始表列有:ID、netID、战术、名称、纬度、经度 SELECT ID, tactical ,CONCAT(latitude, ", ", longitude) as koords ,GROUP_CON

我想从下面的MySQL表中选择一些值。我只想在koords值匹配时才对战术变量和ID变量进行压缩。查询的输出应该包含表中的所有行,用一行替换重复的行。 简而言之,如果两行在纬度和经度值上匹配,我想将两行合并为一行。并将多个值连接到列中。 这可能吗

原始表列有:ID、netID、战术、名称、纬度、经度

SELECT ID, tactical
            ,CONCAT(latitude, ", ", longitude) as koords
            ,GROUP_CONCAT(tactical SEPARATOR '-')  as newtact
            ,GROUP_CONCAT(ID SEPARATOR '-') as newID
FROM `NetLog` 
WHERE netID = 276

目标是在谷歌地图中创建一个包含重复记录信息的标记。映射部分完成了,我只需要在此时组合重复项。

我想您需要
分组方式

SELECT CONCAT(latitude, ', ', longitude) as koords,
       GROUP_CONCAT(tactical SEPARATOR '-')  as newtact,
       GROUP_CONCAT(ID SEPARATOR '-') as newID
FROM `NetLog` 
WHERE netID = 276
GROUP BY latitude, longitude;

我无法理解为什么MySQL的设计者会让像您这样的查询毫无错误地运行。这不是标准的SQL,因为您在
选择中有未聚合的列以及聚合函数。

编辑您的问题,并提供示例数据和所需结果。我不能对您的担忧发表评论,但我可以说我认为您回答了我的问题。我尝试了各种各样的方法,但最终这是一个非常简单的解决方案,很抱歉我没有看到它。谢谢你。@KeithDKaiser。如果出现一个错误,说明
latitude
不在
groupby
中且未聚合,您可能会更快地找到它。