mysql字段有序合并
合并用GROUP_CONCAT()和CONCAT()
排序用ORDER BY,当然知道这些,但合并加有序就是这两个的结合
GROUP_CONCAT( 列名 ORDER BY 排序列名 SEPARATOR ‘;’)即可完成
1.建立表格
因为记录的是经纬度 所lng 和lat用的是decimal
2.简单合并lng与lat两列
SELECT
id,
pid,
NAME,
number,
CONCAT(lng, ',', lat) AS listsize
FROM
t_road_plan
WHERE pid IS NOT NULL
GROUP BY id
ORDER BY number ASC
这个是对lng与lat两列的结合 本次结合是为了后续用“;”用来方便前台调用的
3.最终和并查询
SELECT
a1.number,
a1.name,
a1.pid AS id,
**GROUP_CONCAT(a1.listsize ORDER BY a1.number SEPARATOR ';' ) AS listsize**
FROM
(SELECT id,pid,NAME,number,CONCAT(lng, ',', lat) AS listsize
FROM t_road_plan WHERE pid IS NOT NULL GROUP BY id ORDER BY number ASC) a1
WHERE a1.pid = 6
GROUP BY a1.pid
ORDER BY a1.number ASC;
表a1就是上面对lng与lat的合并查询
4.查询结果
中间用;隔开的
一次表查询结果(结果对比用)