mysql多列字段有序合併

2021-10-11 14:32:50 字數 1432 閱讀 9143

合併用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.查詢結果

中間用;隔開的

一次表查詢結果(結果對比用)

mysql 列轉行,合併字段

列轉行 利用max case when then max 聚合函式 取最大值 casecoursewhen 語文 thenscoreelse0end 判斷 as 語文 別名作為列名 select name max case when course 語文 then score end as語文,max...

mysql列轉行,合併字段

列轉行 利用max case when then max 聚合函式 取最大值 casecoursewhen 語文 thenscoreelse0end 判斷 as 語文 別名作為列名 select name max case when course 語文 then score end as 語文,ma...

mysql 列轉行,合併字段

列轉行 利用max case when then max 聚合函式 取最大值 casecoursewhen 語文 thenscoreelse0end 判斷 as 語文 別名作為列名 select name max case when course 語文 then score end as 語文,ma...