mysql 函數之 字符串函數

1.concat函數的使用

concat(str1,str2,...)

返回的結果是參數連接後產生的字符串,如果有任何一個參數爲null,則返回結果爲null。

 mysql> select concat('My','s','ql');
+-----------------------+
| concat('My','s','ql') |
+-----------------------+
| Mysql                 |
+-----------------------+
1 row in set (0.00 sec)
mysql> select concat('My','s','ql',null);
+----------------------------+
| concat('My','s','ql',null) |
+----------------------------+
| NULL                       |
+----------------------------+
1 row in set (0.00 sec)

該函數的作用就是連接字符串

2.concat_ws() :concat with separator 是CONCAT()的特殊形式。第一個參數是其它參數的分隔符。分隔符的位置放在要連接的兩個字符串間。分隔符可以是一個字符串,也可以是其它參數。如果分隔符爲 NULL,則結果爲 NULL。函數會忽略任何分隔符參數後的 NULL 值。

mysql> select concat_ws('@','My','s','ql');
+------------------------------+
| concat_ws('@','My','s','ql') |
+------------------------------+
| My@s@ql                      |
+------------------------------+
1 row in set (0.00 sec)
mysql> select concat_ws(';','My','s','ql');
+------------------------------+
| concat_ws(';','My','s','ql') |
+------------------------------+
| My;s;ql                      |
+------------------------------+
1 row in set (0.00 sec)


 3.REPLACE(str,from_str,to_str)函數的作用:把字符串str中的子字符串from_str全部替換爲to_str後得到的字符串,如果to_str爲空字符串,那麼相當於把from_str子字符串全去掉,如果from_str爲空字符串相當於對str不做任何修改,只要輸入參數中有null值就返回null。

mysql> select replace('mingyue-s2','-s2','');
+--------------------------------+
| replace('mingyue-s2','-s2','') |
+--------------------------------+
| mingyue                        |
+--------------------------------+
1 row in set (0.00 sec)
mysql> select replace('mingyue-s2','-s2',' ');
+---------------------------------+
| replace('mingyue-s2','-s2',' ') |
+---------------------------------+
| mingyue                         |
+---------------------------------+
1 row in set (0.00 sec)
mysql> select replace('mingyue-s2','-s2',null);
+----------------------------------+
| replace('mingyue-s2','-s2',null) |
+----------------------------------+
| NULL                             |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select concat('mingyue','-s2');
+-------------------------+
| concat('mingyue','-s2') |
+-------------------------+
| mingyue-s2              |
+-------------------------+
1 row in set (0.00 sec)
mysql> select replace('mingyue-s2','-s2',' ');
+---------------------------------+
| replace('mingyue-s2','-s2',' ') |
+---------------------------------+
| mingyue                         |
+---------------------------------+
1 row in set (0.00 sec)

4.TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)

TRIM([remstr FROM] str)

該函數的作用是在字符串str的首尾去掉子字符串remstr後得到的字符串,有以下情況:

1)如果給出LEADING關鍵字,函數將去掉str字符串最左端的子字符串remstr

2)如果給出TRAILING關鍵字,函數將去掉str字符串最右端的子字符串remstr

3)如果給出了BOTH關鍵字,函數將去掉str字符串最左右兩端的子字符串remstr

4)如果沒有關鍵字,默認爲BOTH

5)如果沒有給出子字符串,默認爲空格

mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
+------------------------------------+
| TRIM(LEADING 'x' FROM 'xxxbarxxx') |
+------------------------------------+
| barxxx                             |
+------------------------------------+
1 row in set (0.04 sec)
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
+---------------------------------+
| TRIM(BOTH 'x' FROM 'xxxbarxxx') |
+---------------------------------+
| bar                             |
+---------------------------------+
1 row in set (0.00 sec)
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
+-------------------------------------+
| TRIM(TRAILING 'xyz' FROM 'barxxyz') |
+-------------------------------------+
| barx                                |
+-------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(trailing '-s2' from 'mingyue-s2');
+----------------------------------------+
| trim(trailing '-s2' from 'mingyue-s2') |
+----------------------------------------+
| mingyue                                |
+----------------------------------------+
1 row in set (0.00 sec)
mysql> select trim('-s2' from 'mingyue-s2');
+-------------------------------+
| trim('-s2' from 'mingyue-s2') |
+-------------------------------+
| mingyue                       |
+-------------------------------+
1 row in set (0.00 sec)


5.REVERSE(str)函數:把字符串倒序排列


mysql> select reverse('mingyue-s2');
+-----------------------+
| reverse('mingyue-s2') |
+-----------------------+
| 2s-euygnim            |
+-----------------------+
1 row in set (0.00 sec)

mysql> select reverse('abc');
+----------------+
| reverse('abc') |
+----------------+
| cba            |
+----------------+
1 row in set (0.00 sec)

6.LENGTH(str)函數:返回str的長度,以字節爲單位

mysql> select length('zhu');
+---------------+
| length('zhu') |
+---------------+
|             3 |
+---------------+
1 row in set (0.00 sec)
mysql> select length('mingyue-s2');
+----------------------+
| length('mingyue-s2') |
+----------------------+
|                   10 |
+----------------------+
1 row in set (0.00 sec)



7.LEFT(str,len)函數:返回字符串最左端的len個字符

8.RIGHT(str,len)函數:返回字符串最右端的len個字符

mysql> select left('mingyue-s2',7);
+----------------------+
| left('mingyue-s2',7) |
+----------------------+
| mingyue              |
+----------------------+
1 row in set (0.00 sec)
mysql> select right('mingyue-s2',7);
+-----------------------+
| right('mingyue-s2',7) |
+-----------------------+
| gyue-s2               |
+-----------------------+
1 row in set (0.00 sec)


mysql> select left('mingyue-s2',length('mingyue-s2') - 3);
+---------------------------------------------+
| left('mingyue-s2',length('mingyue-s2') - 3) |
+---------------------------------------------+
| mingyue                                     |
+---------------------------------------------+
1 row in set (0.00 sec)






































































































 

 

 

 

 

 

 

 

 

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