共計(jì) 1820 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
這篇文章將為大家詳細(xì)講解有關(guān)怎么在 mysql 中使用 GROUP_CONCAT 方法,文章內(nèi)容質(zhì)量較高,因此丸趣 TV 小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
結(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ù),并顯示文章標(biāo)題,文章分類,文章 name。
SELECT
a.id AS aid,
a.title AS atitle,
c. NAME AS cname,
ae. NAME AS aname
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 字段進(jìn)行合并,如何做?
只有通過 GROUP_CONCAT 來實(shí)現(xiàn)了:
SELECT
a.id AS aid,
a.title AS atitle,
c. NAME AS cname,
GROUP_CONCAT(ae. NAME SEPARATOR -) AS aname
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 有多個(gè)的要進(jìn)行合并,如何做?
SELECT
a.id AS aid,
a.title AS atitle,
c. NAME AS cname,
ae.allname
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 中使用 GROUP_CONCAT 方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
向 AI 問一下細(xì)節(jié)