溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql列轉(zhuǎn)行函數(shù)指的是什么

發(fā)布時間:2022-07-01 13:45:17 來源:億速云 閱讀:4642 作者:iii 欄目:MySQL數(shù)據(jù)庫

這篇文章主要講解了“mysql列轉(zhuǎn)行函數(shù)指的是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mysql列轉(zhuǎn)行函數(shù)指的是什么”吧!

在mysql中,列轉(zhuǎn)行函數(shù)是“group_concat()”函數(shù);該函數(shù)用于將非空列值按照分組條件進行合并并最終返回,如果其中有空值則返回的結(jié)果是空,語法為“select group_concat(name  separator ';')列名 from 表名;”。

本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。

mysql列轉(zhuǎn)行函數(shù)是什么

GROUP_CONCAT(expr)該函數(shù)將非空列值按照分組條件進行合并并最終返回。如果有空值,則返回為空

在MySQL中,如何將列轉(zhuǎn)成一行?比如一個一個商品會屬于多個分類(如華為手機可以是手機分類,也可以是數(shù)碼分類),如何將此商品在一條數(shù)據(jù)中展現(xiàn)所有分類。

思路很簡單,通過MySQL函數(shù)group_concat即可解決。

創(chuàng)建測試表:

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='測試表'

導入測試數(shù)據(jù):

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

展現(xiàn)所有名字,以分號分割,默認以,分割

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

mysql列轉(zhuǎn)行函數(shù)指的是什么

展現(xiàn)所有名字,并將相同名字去重

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

mysql列轉(zhuǎn)行函數(shù)指的是什么

展現(xiàn)所有年齡,去重并以年齡升序排序

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

mysql列轉(zhuǎn)行函數(shù)指的是什么

感謝各位的閱讀,以上就是“mysql列轉(zhuǎn)行函數(shù)指的是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對mysql列轉(zhuǎn)行函數(shù)指的是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI