一、字符串大小寫轉換
select lower('SQL Course');select upper('Use MYsql');
二、字符串拼接
select concat('My','S','QL');
如果參數中有null拼接返回null,如果有數字會轉換成字符
三、使用管道連接符 “||”
select s_no || s_name || s_age from student;
基本作用與concat類似,但是需要配置PIPES_AS_CONCAT,如果不配置, || 默認是or的意思,查詢結果是一列顯示是1
三、將多個字符串參數以給定的分隔符separator首尾相連後返回
select concat_ws(';','First name','Second name','Last name');
結果爲First name;Second name;Last name 。如果某個參數爲null,拼接時會自動忽略。
四、截取字符串
select substring('hello world',5);o worldselect substr('hello world',5,3);o w
select substr('hello world',-5);world
- len指定子串的長度,如果省略則一直取到字符串的末尾;len爲負值表示從源字符串的尾部開始取起。
- 函數SUBSTR()是函數SUBSTRING()的同義詞。
五、獲取字符串存儲長度
select length('text'),length('你好');
注意:編碼方式不同字符串的存儲長度就不一樣(‘你好’:utf8是6,gbk是4)
六、返回字符串中的字符個數
select char_length('text'),char_length('你好');
char_length
七、從源字符串str中返回子串substr第一次出現的位置
select instr('foobarbar','bar');
八、在源字符串的左邊填充給定的字符padstr到指定的長度len,返回填充後的字符串
select lpad('hi',5,'??');
九、在源字符串的右邊填充給定的字符padstr到指定的長度len,返回填充後的字符串
select rpad('hi',6,'??');
十、從源字符串str中去掉兩端、前綴或後綴字符remstr並返回
select trim(' bar '); bar select trim(leading 'x' from 'xxxbarxxx'); barxxx select trim(both 'x' from 'xxxbarxxx'); bar select trim(trailing 'xyz' from 'barxxyz'); barx
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str):
如果不指定remstr,則去掉str兩端的空格;
不指定BOTH、LEADING、TRAILING ,則默認爲 BOTH。
十一、字符串替換
select replace('www.mysql.com','w','Ww');
在源字符串str中查找所有的子串form_str(大小寫敏感),找到後使用替代字符串to_str替換它。返回替換後的字符串
十二、去掉字符串的左邊或右邊的空格(左對齊、右對齊)
SELECT ltrim(' barbar ') rs1, rtrim(' barbar ') rs2;
十三、將字符串str重複count次後返回
select repeat('MySQL',3);
十四、將字符串str反轉後返回
select reverse('abcdef');
十五、字符編碼轉字符串
select char(77,121,83,81,'76'),char(77,77.3,'77.3');
CHAR(N,... [USING charset_name]):將每個參數N解釋爲整數(字符的編碼),並返回每個整數對應的字符所構成的字符串(NULL值被忽略)。
十六、格式化數字
mysql> SELECT format(12332.123456, 4),format(12332.2,0); +-------------------------+-------------------+ | format(12332.123456, 4) | format(12332.2,0) | +-------------------------+-------------------+ | 12,332.1235 | 12,332 | +-------------------------+-------------------+ mysql> SELECT format(12332.2,2,'de_DE'); +---------------------------+ | format(12332.2,2,'de_DE') | +---------------------------+ | 12.332,20 | +---------------------------+
FORMAT(X,D[,locale]):以格式‘#,###,###.##’格式化數字X
D指定小數位數
locale指定國家語言(默認的locale爲en_US)
十七、返回由N個空格構成的字符串
select space(3);
十八、返回最左邊、最右邊的len長度的子串
select left('chinaitsoft',5),right('chinaitsoft',5);
china tsoft
十九、比較字符串
mysql> SELECT strcmp('text', 'text'),strcmp('text', 'text2'),strcmp('text2', 'text'); +-------------------------+-------------------------+-------------------------+ | strcmp('text', 'text') | strcmp('text', 'text2') |strcmp('text2', 'text') | +-------------------------+-------------------------+-------------------------+ | 0 | - 1 | 1 | +-------------------------+-------------------------+-------------------------+
如果兩個字符串是一樣的則返回0;如果第一個小於第二個則返回-1;否則返回1