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

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

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

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

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

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

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

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

創(chuàng)建測(cè)試表:

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='測(cè)試表'

導(dǎo)入測(cè)試數(shù)據(jù):

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

展現(xiàn)所有名字,以分號(hào)分割,默認(rè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ù)是什么

推薦學(xué)習(xí):mysql視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享