程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql如何實現多行查詢結果合並成一行

mysql如何實現多行查詢結果合並成一行

編輯:MySQL綜合教程

利用函數:group_concat(),實現一個ID對應多個名稱時,原本為多行數據,把名稱合並成一行。

其完整語法:

GROUP_CONCAT(expr)

該函數返回帶有來自一個組的連接的非NULL值的字符串結果。其完整的語法如下所示:

GROUP_CONCAT([DISTINCT] expr [,expr ...]

[ORDER BY {unsigned_integer | col_name | expr}

[ASC | DESC] [,col_name ...]]

[SEPARATOR str_val])

mysql> SELECT student_name,

-> GROUP_CONCAT(test_score)

-> FROM student

-> GROUP BY student_name;

Or:

mysql> SELECT student_name,

-> GROUP_CONCAT(DISTINCT test_score

-> ORDER BY test_score DESC SEPARATOR ' ')

-> FROM student

-> GROUP BY student_name;

在MySQL中,你可以獲取表達式組合的連接值。你可以使用DISTINCT刪去重復值。假若你希望多結果值進行排序,則應該使用 ORDER BY子句。若要按相反順序排列,將 DESC (遞減) 關鍵詞添加到你要用ORDER BY 子句進行排序的列名稱中。默認順序為升序;可使用ASC將其明確指定。 SEPARATOR 後面跟隨應該被插入結果的值中間的字符串值。默認為逗號 (‘,')。通過指定SEPARATOR '' ,你可以刪除所有分隔符。

使用group_concat_max_len系統變量,你可以設置允許的最大長度。 程序中進行這項操作的語法如下,其中 val 是一個無符號整數:

SET [SESSION | GLOBAL] group_concat_max_len = val;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved