一、concat()函數
1、mysql的Concat函數可以連接一個或多個字符串
select concat('10');//10
select concat('11','22','33');//112233
但是Oracle的concat函數只能連接兩個字符串,不能多也不能少
select concat('11','22') from dual;
thinkphp的寫法:
$map ['CONCAT(",", cate_id, ",")'] = array ('like',"%,$cate_id,%" );
2、mysql的Concat函數再連接字符串的時候,只要其中一個是null,南無返回就是null
select concat('11','22',null);//null
而Oracle的concat函數連接的時候,只要有一個字符串不是NULL,就不會返回NULL
select concat('11',NULL) from dual;//11
二、concat_ws()函數
表示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函數在執行的時候,不會因為NULL值而返回NULL
三、group_concat()
*必須將group by按照什么東西排序,也打印出來;否則函數不起作用
1、功能:將group by產生的同一個分組中的值連接起來,返回一個字符串結果。
2、語法:group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
說明:通過使用distinct可以排除重復值;如果希望對結果中的值進行排序,可以使用order by子句;separator是一個字符串值,缺省為一個逗號。
四、使用方法
TP5:return db ( '表名' )->where ( $map )->field ( 'GROUP_CONCAT(mode_name) as mode_name' )->find ();
發表評論