Group_concat介紹與例子

進公司做的第一個項目就是做一個訂單追蹤查詢,裏裏外外連接了十一個表,作爲公司菜雞的我麻了爪.

其中有一個需求就是對於多行的數據在一行顯示,原諒我才疏學淺 無奈下找到了項目組長  在那學來了這個利器 (他就是我心目中的小SQL王)


完整語法如下

group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])


  1. SELECT * FROM testgroup  


表結構與數據如上

現在的需求就是每個id爲一行 在前臺每行顯示該id所有分數


group_concat 上場!!!

  1. SELECT id,GROUP_CONCAT(score) FROM testgroup GROUP BY id  


可以看到 根據id 分成了三行 並且分數默認用 逗號 分割 但是有每個id有重複數據 接下來去重


  1. SELECT id,GROUP_CONCAT(DISTINCT score) FROM testgroup GROUP BY id  



排序

  1. SELECT id,GROUP_CONCAT(score ORDER BY score DESCFROM testgroup GROUP BY id  


最後可以設置分隔符

  1. SELECT id,GROUP_CONCAT(score SEPARATOR ';'FROM testgroup GROUP BY id  



這樣我們的數據就根據id 不同分隔符 放在了一行 前臺可以根絕對應的分隔符 對score 字段進行分割 但是有可能存在score 數據類型過大問題 

達到需求目的!!!

發佈了64 篇原創文章 · 獲贊 219 · 訪問量 137萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章