佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > mysql中GROUP_CONCAT的使用方法實例分析

mysql中GROUP_CONCAT的使用方法實例分析

熱門標簽:服務外包 Linux服務器 呼叫中心市場需求 AI電銷 地方門戶網(wǎng)站 百度競價排名 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化

本文實例講述了mysql中GROUP_CONCAT的使用方法。分享給大家供大家參考,具體如下:

現(xiàn)在有三個表,結構如下:

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;

結果如下,出現(xiàn)了兩條數(shù)據(jù):

 

現(xiàn)在只想要一條結果,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;

結果如下:

那么,現(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;

結果如下:

更多關于MySQL相關內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關技巧匯總》

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

您可能感興趣的文章:
  • python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運算
  • 如何修改Mysql中group_concat的長度限制
  • 在MySQL concat里面使用多個單引號,三引號的問題

標簽:銅川 仙桃 衡水 湖南 湘潭 崇左 蘭州 黃山

巨人網(wǎng)絡通訊聲明:本文標題《mysql中GROUP_CONCAT的使用方法實例分析》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    潜山县| 申扎县| 通榆县| 白朗县| 临泉县| 皋兰县| 建阳市| 醴陵市| 阿克| 闽侯县| 长沙市| 大姚县| 山阴县| 常熟市| 通城县| 沐川县| 商洛市| 门源| 涿州市| 临江市| 昌都县| 瑞丽市| 井研县| 桓台县| 合肥市| 开鲁县| 南康市| 西盟| 仲巴县| 鹰潭市| 彝良县| 张家港市| 芒康县| 乐平市| 阳朔县| 任丘市| 莱州市| 宣汉县| 乌鲁木齐市| 西吉县| 新民市|