摘要:一、concat()函數功能:將多個字符串連接成一個字符串。語法:concat(str1, str2,...)返回結果為連接參數產生的字符串,如果有任何一個參數為null,則返回值為null。準備:我們新建一個my_test表,并插入測試數據...
一、concat()函數
功能:將多個字符串連接成一個字符串。
語法:concat(str1, str2,...)
返回結果為連接參數產生的字符串,如果有任何一個參數為null,則返回值為null。
準備:我們新建一個my_test表,并插入測試數據:
SELECT * FROM `my_test`;
例1:基本使用
select concat (id, username, password) as info from my_test;
例2:在例1的結果中三個字段 id, username, password 的組合沒有分隔符,我們可以加一個逗號作為分隔符:
select concat (id, ',', username, ',', password) as info from my_test;
這樣看上去似乎順眼了許多~~
但是輸入sql語句麻煩了許多,三個字段需要輸入兩次逗號,如果10個字段,要輸入九次逗號...麻煩死了啦,有沒有什么簡便方法呢?——于是可以指定參數之間的分隔符的concat_ws()來了!!!
二、concat_ws()函數
功能:和concat()一樣,將多個字符串連接成一個字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)
語法:concat_ws(separator, str1, str2, ...)
說明:第一個參數指定分隔符。需要注意的是分隔符不能為null,如果為null,則返回結果為null。
例3:我們使用concat_ws()將 分隔符指定為逗號,達到與例2相同的效果:
select concat_ws(',', id,username,password) as info from my_test;
例4:把分隔符指定為null,結果全部變成了null:
select concat_ws(null, id,username,password) as info from my_test;
三、group_concat()函數
前言:在有group by的查詢語句中,select指定的字段要么就包含在group by語句的后面,作為分組的依據,要么就包含在聚合函數中。
例5:查詢該數據并根據性別分組:
select sex, id, username from my_test group by sex;
根據性別分組之后,想知道每個分組里面都有哪些數據,那怎么辦啊? ——使用group_concat()
例6:查詢數據分組并獲取每個組別中詳細的數據:
select sex, group_concat(id) as ids, group_concat(username) as names from my_test group by sex;