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;