本文主要給大家介紹concat與group_concat函數(shù)使用流程,其所涉及的東西,從理論知識來獲悉,有很多書籍、文獻(xiàn)可供大家參考,從現(xiàn)實(shí)意義角度出發(fā),創(chuàng)新互聯(lián)累計多年的實(shí)踐經(jīng)驗可分享給大家。
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)大東,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
使用方法:concat(str1,str2,…)
返回的結(jié)果為連接參數(shù)產(chǎn)生的字符串,如有任何一個參數(shù)為null,則返回值為null
注意:
如果所有參數(shù)均為非二進(jìn)制字符串,則結(jié)果為非二進(jìn)制字符串
如果自變量中含有任一二進(jìn)制字符串,則結(jié)果為二進(jìn)制字符串
一個數(shù)字參數(shù)被轉(zhuǎn)為與之相等的二進(jìn)制字符串格式,如要避免這種情況,可使用顯式類型cast
例如:
select concat(cast(int_col as char), char_col);
使用例子:
1.字段兩端加上’,’
MySQL> select concat(',',name,',') from `user`; +--------------------------+| concat(',',fdipzone,',') | +--------------------------+| ,fdipzone, | +--------------------------+1 row in set (0.00 sec)
2.其中有一個參數(shù)為null
mysql> select concat(null,name) from `user`; +-------------------+| concat(null,name) | +-------------------+| NULL | +-------------------+1 row in set (0.00 sec)
使用方法:concat_ws(separator,str1,str2,…)
concat_ws()函數(shù)是concat()函數(shù)的特殊形式,第一個參數(shù)是其他參數(shù)的分隔符。分隔符的位置在要連接的兩個字符串之間。分隔符可以是一個字符串,也可以是其他參數(shù)。
如果分隔符為null,則結(jié)果為null。
函數(shù)會忽略任何分隔符參數(shù)后的null值,但concat_ws()不會忽略任何空字符串。
使用例子:
1.使用’,’分隔多個字段
mysql> select concat_ws(',',country_code,phone,region) from `user`; +------------------------------------------+| concat_ws(',',country_code,phone,region) | +------------------------------------------+| 86,13794830550,GZ | +------------------------------------------+1 row in set (0.00 sec)
2.分隔符為null
mysql> select concat_ws(null,country_code,phone,region) from `user`; +-------------------------------------------+| concat_ws(null,country_code,phone,region) | +-------------------------------------------+| NULL | +-------------------------------------------+1 row in set (0.00 sec)
3.參數(shù)中有null與空字符串
mysql> select concat_ws(',',country_code,phone,null,region,'',grade) from `user`; +--------------------------------------------------------+| concat_ws(',',country_code,phone,null,region,'',grade) | +--------------------------------------------------------+| 86,13794830550,GZ,,200 | +--------------------------------------------------------+1 row in set (0.00 sec)
使用方法:GROUP_CONCAT([DISTINCT] expr [,expr …]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col …]]
[SEPARATOR str_val])
group_concat可以得到表達(dá)式結(jié)合體的連結(jié)值,使用distinct可以排除重復(fù)值。使用order by子句可以排序。
separator是一個字符串,用于分隔結(jié)果集中每個元素。默認(rèn)是逗號,可以通過指定separator “”完全移除這個分隔符。
使用例子:
表結(jié)構(gòu)
CREATE TABLE `article_in_category` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `article_id` int(11) unsigned NOT NULL, `category_id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `article_id_INDEX` (`article_id`), KEY `category_id_INDEX` (`category_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入數(shù)據(jù):
INSERT INTO `article_in_category` (`id`, `article_id`, `category_id`) VALUES (NULL, '1', '1'), (NULL, '1', '2'),(NULL, '1', '3'),(NULL, '2', '4'),(NULL, '2', '3'),(NULL, '2', '5'),(NULL, '3', '1'), (NULL, '3', '5'),(NULL, '3', '6'),(NULL, '4', '8');
mysql> select * from `article_in_category`; +----+------------+-------------+| id | article_id | category_id | +----+------------+-------------+| 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 1 | 3 | | 4 | 2 | 4 | | 5 | 2 | 3 | | 6 | 2 | 5 | | 7 | 3 | 1 | | 8 | 3 | 5 | | 9 | 3 | 6 || 10 | 4 | 8 | +----+------------+-------------+
獲取文章的id及所有分類id
mysql> select article_id,group_concat(category_id order by category_id asc) from `article_in_category` group by article_id; +------------+----------------------------------------------------+| article_id | group_concat(category_id order by category_id asc) | +------------+----------------------------------------------------+| 1 | 1,2,3 | | 2 | 3,4,5 | | 3 | 1,5,6 || 4 | 8 | +------------+----------------------------------------------------+4 rows in set (0.00 sec)
注意:group_concat()函數(shù)對返回的結(jié)果有長度限制,默認(rèn)為1024字節(jié)
查看group_concat返回值最大長度
mysql> show global variables like '%group_concat_max_len%'; +----------------------+-------+| Variable_name | Value | +----------------------+-------+| group_concat_max_len | 1024 | +----------------------+-------+
修改group_concat返回值最大長度
mysql> set global group_concat_max_len=2048; Query OK, 0 rows affected (0.03 sec)mysql> show global variables like '%group_concat_max_len%'; +----------------------+-------+| Variable_name | Value | +----------------------+-------+| group_concat_max_len | 2048 | +----------------------+-------+
以上就是關(guān)于mysql函數(shù)concat與group_concat使用說明事項的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!
本文名稱:concat與group_concat函數(shù)使用流程
分享網(wǎng)址:http://m.newbst.com/article28/jegecp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、軟件開發(fā)、品牌網(wǎng)站建設(shè)、App設(shè)計、網(wǎng)頁設(shè)計公司、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)