首頁  >  文章  >  資料庫  >  mysql列轉行函數是什麼

mysql列轉行函數是什麼

WBOY
WBOY原創
2022-07-01 10:49:4918009瀏覽

在mysql中,列轉行函數是「group_concat()」函數;該函數用於將非空列值按照分組條件進行合併並最終返回,如果其中有空值則傳回的結果是空,語法為「select group_concat(name  separator ';')列名from 表名;」。

mysql列轉行函數是什麼

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql列轉行函數是什麼

GROUP_CONCAT(expr)該函數將非空列值依照分組條件合併並最終傳回。如果有空值,則傳回為空白

在MySQL中,如何將列轉成一行?例如一個一個商品會屬於多個分類(如華為手機可以是手機分類,也可以是數碼分類),如何將此商品在一條數據中展現所有分類。

想法很簡單,透過MySQL函數group_concat即可解決。

建立測試表:

create table test.test_mysql_liezhuanhang (
id         bigint auto_increment comment '主键',
name       varchar(100),
age        int(5),
primary key (id)
)engine=innodb default charset=utf8mb4 comment='测试表'

匯入測試資料:

insert into test.test_mysql_liezhuanhang (name, age) values ('李威', 18), ('李威', 19), ('李威', 18), ('李白', 20), ('李白', 20), ('李白', 19);

#展現所有名字,以分號分割,預設以,分割

select group_concat(name  separator ';') concat
  from test.test_mysql_liezhuanhang 
;

mysql列轉行函數是什麼 

展現所有名字,並將相同名字去重

select group_concat(distinct name) concat
  from test.test_mysql_liezhuanhang 
;

mysql列轉行函數是什麼

展現所有年齡,去重並以年齡升序排序

select group_concat(distinct age order by age) concat
  from test.test_mysql_liezhuanhang 
;

mysql列轉行函數是什麼

推薦學習:mysql影片教學

以上是mysql列轉行函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn