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)
RIGHT
從右方擷取自串。
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`