MySql采用GROUP_CONCAT合并多條數(shù)據(jù)顯示的方法
本文實例講述了MySql采用GROUP_CONCAT合并多條數(shù)據(jù)顯示的方法,分享給大家供大家參考。具體實現(xiàn)方法如下:
假設(shè)有這樣一個需求:
1:班級表:
id class_name
2:學(xué)生表:
id name class_id
如果我們要查所有的班級以及每個班級下的學(xué)生,你一定會想到這樣寫法:
banji.*, user.name
FROM `banji`
left join user
on banji.id=user.`class`
where banji.id=2
這樣我們得到的結(jié)果的個數(shù)是和學(xué)生人數(shù)相同的,而我希望得到的就是一條數(shù)據(jù),而這條數(shù)據(jù)中還要包含所有學(xué)生,可以這樣寫:
banji.*, GROUP_CONCAT(user.name) as names
FROM `banji`
left join user
on banji.id=user.`class`
where banji.id=2
這樣就只得到一條結(jié)果了,而結(jié)果中包含所有的學(xué)生name,
| id | class_name | names |
| 2 | 二 | lisi,zhaoliu,liu,小二,xiaoming,小張 |
還可以自定義分隔符:
banji.*, GROUP_CONCAT(user.name SEPARATOR "|") as names
FROM `banji`
left join user
on banji.id=user.`class`
where banji.id=2
得到的結(jié)果:
| id | class_name | names |
| 2 | 二 | lisi|zhaoliu|liu|小二|xiaoming|小張 |
二 希望本文所述對大家的MySQL數(shù)據(jù)庫程序設(shè)計有所幫助。
相關(guān)文章
Mysql中undo、redo與binlog的區(qū)別淺析
大家應(yīng)該都知道日志系統(tǒng)主要有redo log(重做日志)和binlog(歸檔日志),下面這篇文章主要給大家介紹了關(guān)于Mysql中undo、redo與binlog區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-09-09
MySQL壓力測試方法 如何使用mysqlslap測試MySQL的壓力?
生產(chǎn)服務(wù)器用LANMP組合和用LAMP組合有段時間了,總體來說都很穩(wěn)定。但出現(xiàn)過幾次因為MYSQL并發(fā)太多而掛掉,一直想對MYSQL做壓力測試。剛看到一篇介紹MYSQL壓力測試的文章,確實不錯,先收藏先吧2016-05-05
MySQL?InnoDB?undo?log數(shù)據(jù)結(jié)構(gòu)用法詳解
InnoDB的undolog用于事務(wù)回滾與MVCC,存于共享/獨立表空間,包含insert和update兩種類型,通過參數(shù)配置,由purge線程清理2025-07-07
CentOs7安裝部署Sonar環(huán)境的詳細過程(JDK1.8+MySql5.7+sonarqube7.8)
這篇文章主要介紹了CentOs7安裝部署Sonar環(huán)境(JDK1.8+MySql5.7+sonarqube7.8),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06

