mysql字串函數


記錄一下使用過的mysql字串處理函數,只包含了自己使用過的部分,如果之後有機會使用到其他的函數會再補上,全部的功能還是請大家去官方手冊查詢。

GROUP_CONCAT

Group by時連接字串用,會將group by合起來的資料串成一欄,並且使用設定的字元作為間隔,下方例子用'、‘作為間隔。

SELECT id,useblock, GROUP_CONCAT(maintext SEPARATOR '、') 
FROM tablename 
WHERE maintext!=''
GROUP BY useblock

CONCAT

連接字串或欄位用。

SELECT CONCAT(maintext, '_addstring')
FROM tablename 

LEFT

從左方擷取自串。

SELECT LEFT('abcabc',1)

從右方擷取自串。

SELECT RIGHT('abcabc',1)

substring(str, pos, length)

從指定位置擷取自串,substring(擷取字串,從第幾字元開始擷取,擷取長度),其中長度省略的話就會擷取至結尾,擷取開頭為負數的話則從後方開始數。

SELECT substring('abcabc',3)
SELECT substring('abcabc',3,2)
SELECT substring('abcabc',-3)

substring_index(str, delim, count)

用字串出現位置擷取字串,會擷取至count指定的次數,負數則是從後方開始數,以下方例子來說第一個會出現abca,第二個會出現abcabc,若指定字串未出現的話則會整段取出。

SELECT substring_index('abcabc','a',2)
SELECT substring_index('abcabc','a',-2)

MD5

用md5加密字串,配合rand()產生隨機數字的話可以隨機產生字串。

SELECT MD5(RAND()) AS RandomString;

UUID

唯一識別符UUID(),生成的值是唯一的不重複的字串。

SELECT UUID()

REPLACE

取代字串

SELECT REPLACE(`o_string`,'-','') as new_string FROM `table` 
Tags : mysql