龍巖易富通網(wǎng)絡(luò)科技有限公司

龍巖小程序開(kāi)發(fā),龍巖分銷(xiāo)系統(tǒng)

MySQL中concat以及group_concat連接一個(gè)或多個(gè)字符串使用

2020.08.29 | 1962閱讀 | 0條評(píng)論 | 數(shù)據(jù)庫(kù)

一、concat()函數(shù)

1、mysql的Concat函數(shù)可以連接一個(gè)或多個(gè)字符串

select concat('10');//10

select concat('11','22','33');//112233

但是Oracle的concat函數(shù)只能連接兩個(gè)字符串,不能多也不能少

select concat('11','22') from dual;


thinkphp的寫(xiě)法:

$map ['CONCAT(",", cate_id, ",")'] = array ('like',"%,$cate_id,%" );


2、mysql的Concat函數(shù)再連接字符串的時(shí)候,只要其中一個(gè)是null,南無(wú)返回就是null

select concat('11','22',null);//null

而Oracle的concat函數(shù)連接的時(shí)候,只要有一個(gè)字符串不是NULL,就不會(huì)返回NULL

select concat('11',NULL) from dual;//11


二、concat_ws()函數(shù)

表示concat with separator,即有分隔符的字符串連接

select concat_ws(',','11','22','33');//11,22,33

select concat_ws('|','11','22','33');//11|22|33

select concat_ws('*','11','22',NULL);//11*22

和concat不同的是, concat_ws函數(shù)在執(zhí)行的時(shí)候,不會(huì)因?yàn)镹ULL值而返回NULL


三、group_concat()

*必須將group by按照什么東西排序,也打印出來(lái);否則函數(shù)不起作用

1、功能:將group by產(chǎn)生的同一個(gè)分組中的值連接起來(lái),返回一個(gè)字符串結(jié)果。

2、語(yǔ)法:group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

說(shuō)明:通過(guò)使用distinct可以排除重復(fù)值;如果希望對(duì)結(jié)果中的值進(jìn)行排序,可以使用order by子句;separator是一個(gè)字符串值,缺省為一個(gè)逗號(hào)。


四、使用方法

TP5:return db ( '表名' )->where ( $map )->field ( 'GROUP_CONCAT(mode_name) as mode_name' )->find ();

贊 (

發(fā)表評(píng)論