1. 程式人生 > >mysql中的concat相關函式

mysql中的concat相關函式

一、concat()函式

  • 功能:將多個字串連線成一個字串
  • 語法:concat(str1,str2,…) 其中的字串既可以是資料表字段,也可以是指定的字串
  • 返回結果為連線引數產生的字串,如果有任何一個引數為null,則該條記錄的返回值為null

二、concat_ws()函式

  • 功能:和concat()一樣,將多個字串連線成一個字串,但是可以一次性指定分隔符(concat_ws就是concat with separator)
  • 語法:concat_ws(separator,str1,str2,…)
  • 說明:第一個引數指定分隔符,需要注意的是分隔符不能為null,如果為null,則所有返回結果均為null

三、group_concat()函式

先來看這麼個需求:
在這裡插入圖片描述
其中user_id是使用者id,fee是消費金額,time是消費時間戳。

在consumption消費記錄表中,需要查找出每個使用者所有的消費金額明細。

很顯然,單一的group by已經不足以實現這個需求了:

select max(time),fee from consumption group by user_id

group by後的欄位之間的關係是錯層的,我們只能單一的去篩選某個欄位,而不能保證它們同屬於一條記錄。

這個時候就要用到group_concat()函數了:

select user_id,GROUP_CONCAT(time,':',fee) from consumption group by user_id

得到如下結果:
在這裡插入圖片描述
對結果進行資料處理,可以很容易地在頁面上展示我們想要的效果。