GROUP_CONCAT函數返回一個字符串結果,該結果由分組中的值連接組合而成,下面我們來看一個GROUP_CONCAT函數把多條數據顯示成一條數據示例,希望能幫助到大家.
有這樣一個需求:
- 1:班級表
- id class_name
- 2:學生表
- id name class_id
如果我們要查所有的班級以及每個班級下的學生,你一定會想到這樣寫法:
- SELECT
- banji.*, user.name
- FROM `banji`
- left join user
- on banji.id=user.`class`
- where banji.id=2
這樣我們得到的結果的個數是和學生人數相同的,而我希望得到的就是一條數據,而這條數據中還要包含所有學生,可以這樣寫:
- SELECT
- banji.*, GROUP_CONCAT(user.name) as names
- FROM `banji`
- left join user
- on banji.id=user.`class`
- where banji.id=2
這樣就只得到一條結果了,而結果中包含所有的學生name,id class_name names
二,lisi,zhaoliu,liu,小二,xiaoming,小張
還可以自定義分隔符,代碼如下:
- SELECT
- banji.*, GROUP_CONCAT(user.name SEPARATOR "|") as names
- FROM `banji` --Vevb.com
- left join user
- on banji.id=user.`class`
- where banji.id=2
- --得到的結果:
- id class_name names
- 2 二 lisi|zhaoliu|liu|小二|xiaoming|小張
新聞熱點
疑難解答