MySql采用GROUP_CONCAT合并多條數(shù)據(jù)顯示的方法

字號(hào):


    本文實(shí)例講述了MySql采用GROUP_CONCAT合并多條數(shù)據(jù)顯示的方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
    假設(shè)有這樣一個(gè)需求:
    1:班級(jí)表:
    id class_name
    2:學(xué)生表:
    id name class_id
    如果我們要查所有的班級(jí)以及每個(gè)班級(jí)下的學(xué)生,你一定會(huì)想到這樣寫(xiě)法:
    復(fù)制代碼 代碼如下:SELECT
    banji.*, user.name
    FROM `banji`
    left join user
    on banji.id=user.`class`
    where banji.id=2
    這樣我們得到的結(jié)果的個(gè)數(shù)是和學(xué)生人數(shù)相同的,而我希望得到的就是一條數(shù)據(jù),而這條數(shù)據(jù)中還要包含所有學(xué)生,可以這樣寫(xiě):
    復(fù)制代碼 代碼如下:SELECT
    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,小張
    還可以自定義分隔符:
    復(fù)制代碼 代碼如下:SELECT
    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|小張
    二 希望本文所述對(duì)大家的MySQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所幫助。