mysql字符串操作

一、字符串大小寫轉換

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 world
select 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 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章