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

2022-10-06 01:51:12 字數 1073 閱讀 3081

利用函式:group_concat(),實現乙個id對應多個名稱時,原本為多行資料,把名稱合併成一行。

其完整語法:

group_concat(expr)

該函式返回帶有來自乙個組的連線的非null值的字串結果。其完整的語法如下所示:

group_concat([distinct] expr [,expr ...]

[order by

[asc | desc] [,col_name www.cppcns.com...]]

[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將其明確指定。 sewww.cppcns.comparator 後面跟隨應該dlucif被插入結果的值中間的字串值。預設為逗號 (『,')。通過指定separator '' ,你可以刪除所有分隔符。

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

set [session | global] group_concat_max_len = val;

本文標題: mysql如何實現多行查詢結果合併成一行

本文位址:

mysql查詢結果翻轉 如何把sql結果集翻轉

我用的是sql 請教如何把sql結果集翻轉?如下一張表 checkinout 顯示員工簽到,簽退的考勤表,checktype 考勤型別 i 表示簽到,o 表示簽退 timeflag 4表示上午,5表示下午 checktime 簽到,籤 userid checktype checktime timef...

SQL 如何把多行查詢結果,作為一行返回

create function dbo.uf getinvoiceserials bizcode varchar 10 returns varchar 100 as begin declare ret as varchar 1000 select ret coalesce ret case e.id...

mysql中的多行查詢結果合併成乙個

利用函式 group concat 實現乙個id對應多個名稱時,原本為多行資料,把名稱合併成一行,如 1 10,20,20 mysql中group concat函式 完整的語法如下 group concat distinct 要連線的字段 order by asc desc 排序字段 separat...