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)