今天碰到一個(gè)問(wèn)題,由于多表關(guān)聯(lián)查詢的關(guān)系,返回的數(shù)據(jù)中有2條id相同但是其中一個(gè)字段(職稱)不同的結(jié)果,這個(gè)字段還必須展示并且以此字段查詢。
因?yàn)閕d相同所以使用group by id就可以了,但是分組之后的數(shù)據(jù)只有一個(gè),無(wú)法顯示此id的另一個(gè)職稱,這TM就尷尬了~,所謂功夫不負(fù)有心人,我在網(wǎng)上找到了MySQL的group_concat()函數(shù),
group_concat函數(shù)的語(yǔ)法及介紹:
GROUP_CONCAT([DISTINCT] exPR [,expr ...][ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]][SEPARATOR str_val])在 MySQL 中,你可以得到表達(dá)式結(jié)合體的連結(jié)值。通過(guò)使用 DISTINCT 可以排除重復(fù)值。如果希望對(duì)結(jié)果中的值進(jìn)行排序,可以使用 ORDER BY 子句。SEPARATOR 是一個(gè)字符串值,它被用于插入到結(jié)果值中。缺省為一個(gè)逗號(hào) (","),可以通過(guò)指定 SEPARATOR "" 完全地移除這個(gè)分隔符??梢酝ㄟ^(guò)變量 group_concat_max_len 設(shè)置一個(gè)最大的長(zhǎng)度。在運(yùn)行時(shí)執(zhí)行的句法如下: SET [session | GLOBAL] group_concat_max_len = unsigned_integer;如果最大長(zhǎng)度被設(shè)置,結(jié)果值被剪切到這個(gè)最大長(zhǎng)度。如果分組的字符過(guò)長(zhǎng),可以對(duì)系統(tǒng)參數(shù)進(jìn)行設(shè)置:SET @@global.group_concat_max_len=40000;
哈哈哈哈哈~完美的解決了我的問(wèn)題,又學(xué)了一招
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注