mysql中GROUP_CONCAT的使用方法實例分析
本文實例講述了mysql中GROUP_CONCAT的使用方法。分享給大家供大家參考,具體如下:
現(xiàn)在有三個表,結(jié)構(gòu)如下:
cate表:
CREATE TABLE `cate` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `name` char(20) DEFAULT '' COMMENT '分類名', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='文章分類表';
article表:
CREATE TABLE `article` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `title` varchar(50) DEFAULT '', `cate_id` int(11) NOT NULL DEFAULT '0' COMMENT '分類id', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='文章表';
article_extend表:
CREATE TABLE `article_extend` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `article_id` int(10) unsigned DEFAULT '0' COMMENT '文章id', `name` varchar(255) DEFAULT '' COMMENT '音頻,圖片之類', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='附件表';
三張表數(shù)據(jù)如下:
cate表:
article表:
article_extend表:
問題來了,現(xiàn)在通過表連接查詢,查詢文章id為1的文章數(shù)據(jù),并顯示文章標題,文章分類,文章name。
SELECT a.id AS aid, a.title AS atitle, c. NAME AS cname, ae. NAME AS aname FROM article AS a LEFT JOIN cate AS c ON a.cate_id = c.id LEFT JOIN article_extend AS ae ON a.id = ae.article_id WHERE a.id = 1;
結(jié)果如下,出現(xiàn)了兩條數(shù)據(jù):
現(xiàn)在只想要一條結(jié)果,aname字段進行合并,如何做?
只有通過GROUP_CONCAT來實現(xiàn)了:
SELECT a.id AS aid, a.title AS atitle, c. NAME AS cname, GROUP_CONCAT(ae. NAME SEPARATOR '-') AS aname FROM article AS a LEFT JOIN cate AS c ON a.cate_id = c.id LEFT JOIN article_extend AS ae ON a.id = ae.article_id WHERE a.id = 1;
結(jié)果如下:

那么,現(xiàn)在我們不想通過文章id一條一條的查,我們要取全部,但如果文章name有多個的要進行合并,如何做?
SELECT a.id AS aid, a.title AS atitle, c. NAME AS cname, ae.allname FROM article AS a LEFT JOIN ( SELECT ae.article_id, GROUP_CONCAT(ae. NAME) AS allname FROM article_extend AS ae GROUP BY ae.article_id ) AS ae ON a.id = ae.article_id LEFT JOIN cate AS c ON a.cate_id = c.id;
結(jié)果如下:

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。
- MySQL統(tǒng)計函數(shù)GROUP_CONCAT使用陷阱分析
- mysql group_concat()函數(shù)用法總結(jié)
- 淺談MySQL中g(shù)roup_concat()函數(shù)的排序方法
- MySQL拼接字符串函數(shù)GROUP_CONCAT詳解
- MySQL基于group_concat()函數(shù)合并多行數(shù)據(jù)
- MySQL中CONCAT和GROUP_CONCAT方法的區(qū)別詳解
- MySQL函數(shù)CONCAT、CONCAT_WS、GROUP_CONCAT用法詳解
- MySQL group_concat函數(shù)使用方法詳解
- mysql中GROUP_CONCAT函數(shù)使用及遇到問題詳解
- mysql中GROUP_CONCAT函數(shù)使用技巧及問題詳解
- MySQL中g(shù)roup_concat函數(shù)用法小結(jié)
相關(guān)文章
mysql出現(xiàn)ERROR 1819 (HY000)的解決方法
這篇文章主要為大家詳細介紹了mysql出現(xiàn)ERROR 1819 (HY000)的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
mysql 日期和時間格式轉(zhuǎn)換實現(xiàn)語句
對于每個類型擁有的值范圍以及并且指定日期何時間值的有效格式的描述見7.3.6 日期和時間類型。2009-10-10
mysql服務(wù)設(shè)置遠程連接如何解決1251 client does not su
文章介紹了如何在遠程主機上配置MySQL環(huán)境,并使用Navicat連接遠程MySQL數(shù)據(jù)庫的步驟,包括前期準備、mysql配置以及使用Navicat連接的過程2024-12-12

