天天看點

mysql concat變成一條_MySql如何将多條資料顯示成一條資料 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

names2

lisi,zhaoliu,liu,小二,xiaoming,小張

還可以自定義分隔符:

SELECT

banji.*, GROUP_CONCAT(user.name SEPARATOR "|") as names

FROM `banji`

left join user

on banji.id=user.`class`

where banji.id=2

得到的結果:

id

class_name

names2

lisi|zhaoliu|liu|小二|xiaoming|小張