繼介紹時間函數後,要介紹的是MYSQL常用字串函數。
字串函數可以幫助我們抓取欄位的前幾個字、後幾個字,
或是抓到特定關鍵字、關鍵字附近的字等等,
今天先介紹怎麼取字串長度和簡單的取字串。
對字串進行操作,第一個要認識的是「字串字數」,
因為有些相關函數會指定:關鍵字後面「幾個字」,
一般在計算字數時,「ABC」是三個字,三位元,
但中文就不一定了,「你好」是兩個字,
根據編碼不同,可能是兩位元(GBK)或是三位元(UTF-8)。
以下語法輸出結果中文是6位元,
可以推出我的資料庫中文編碼設定是UTF-8,
一個字三位元;英文則是5位元,一個字一位元。
SELECT LENGTH('你好');
SELECT CHAR_LENGTH('Hello');
以下語法輸出結果中文長度2,英文長度5,
無論中英文,一個字就是長度1。
SELECT CHAR_LENGTH('你好');
SELECT CHAR_LENGTH('Hello');
取字串從左邊起數來的長度
SELECT LEFT('今天天氣晴,太陽出來了,風兒輕輕吹',6);
今天天氣晴,
取字串從右邊起數來的長度
SELECT RIGHT('今天天氣晴,太陽出來了,風兒輕輕吹',6);
,風兒輕輕吹
SUBSTRING可以指定從哪個位置開始擷取,要擷取多長。
(會包含開始位置的字串,例如從第7個字開始,取3個,
就會是7,8,9)
SELECT SUBSTRING('今天天氣晴,太陽出來了,風兒輕輕吹',7,5);
太陽出來了
如果不給擷取長度,就會一路擷取到結束。
SELECT SUBSTRING('今天天氣晴,太陽出來了,風兒輕輕吹',7);
太陽出來了,風兒輕輕吹
也可以用負數指定擷取位置,
負數意思就是從字串尾巴數回來。
SELECT SUBSTRING('今天天氣晴,太陽出來了,風兒輕輕吹',-5,5);
風兒輕輕吹
大大您好
想修正一個地方SELECT CHAR_LENGTH('你好')的長度應該是2
另外謝謝您提供這麼棒的教學
已修正,感謝你