MySQL常用字符函數

MySQL常用字符函數簡介

CONCAT(S1,S2…Sn) 連接S1,S2…Sn為一個字符串

concat函數,把傳入的參數連接成為一個字符串。
例如:
把“aaa”、“bbb”、”ccc”3個字符串連接成一個字符串,“aaabbbccc”.另外任何與NULL進行連接的結果都將是NULL.

>SELECT concat(‘aaa’,’bbb’,’ccc’),concat(‘aaa’,NULL);

mysql> SELECT concat('aaa','bbb','ccc'),concat('aaa',NULL);
+---------------------------+--------------------+
| concat('aaa','bbb','ccc') | concat('aaa',NULL) |
+---------------------------+--------------------+
| aaabbbccc                 | NULL               |
+---------------------------+--------------------+
1 row in set (0.00 sec)

INSERT(str,x,y,instr) 將字符串str從第x位置開始,y個字符長的子串替換為字符串

insert(str,x,y,instr)函數:將字符串str從第x位置開始,y個字符長的子串替換成”me”.

mysql> SELECT insert('beijingaiNI',10,2,'WO');
+---------------------------------+
| insert('beijingaiNI',10,2,'WO') |
+---------------------------------+
| beijingaiWO                     |
+---------------------------------+
1 row in set (0.00 sec)

LOWER(str);UPPER(str) 將字符串str中所有字符變為小寫或者大寫

LOWER(str)和UPPER(str)函數:把字符串轉換成小寫或大寫
在字符串比較中,通常要將比較的字符串全部轉換為大寫或者小寫,如下例所示:

mysql> SELECT lower('WOAINI'),upper('woxihuanni');
+-----------------+---------------------+
| lower('WOAINI') | upper('woxihuanni') |
+-----------------+---------------------+
| woaini          | WOXIHUANNI          |
+-----------------+---------------------+
1 row in set (0.00 sec)

LEFT(str,x);RIGHT(str,x) 返回字符串最左或最右邊的x個字符串

LEFT(str,x)和RIGHT(str,x)函數:分別返回字符串最左邊和最右邊的x個字符,如果第二個參數是NULL,那么將不返回任何字符串。
下例所示:

mysql> SELECT left('beijing',3);
+-------------------+
| left('beijing',3) |
+-------------------+
| bei               |
+-------------------+
1 row in set (0.01 sec)

mysql> SELECT left('beijing',NULL);
+----------------------+
| left('beijing',NULL) |
+----------------------+
| NULL                 |
+----------------------+
1 row in set (0.00 sec)

LPAD(str,n,pad);RPAD(str,n,pad) 用字符串pad對str最左邊或最右邊進行填充,直到長度為n個字符長度(n要大于str的長度,否則就不是填充,變成截取了。)

LPAD(str,n,pad)和RPAD(str,n,pad)函數:用字符串pad對str最左邊和最右邊進行填充,直到長度為n個字符串。

mysql> SELECT lpad('beijing',10,'123');
+--------------------------+
| lpad('beijing',10,'123') |
+--------------------------+
| 123beijing               |
+--------------------------+
1 row in set (0.00 sec)

mysql> SELECT rpad('beijing',10,'123');
+--------------------------+
| rpad('beijing',10,'123') |
+--------------------------+
| beijing123               |
+--------------------------+
1 row in set (0.00 sec)

LTRIM(str);RTRIM(str) 去掉字符串str左側和右側的空格

LTRIM(str)和RTRIM(str)函數:去掉字符串str左側和右側的空格。

mysql> SELECT ltrim('  |wo|'),rtrim('|ni|   ');
+-----------------+------------------+
| ltrim('  |wo|') | rtrim('|ni|   ') |
+-----------------+------------------+
| |wo|            | |ni|             |
+-----------------+------------------+
1 row in set (0.00 sec)

REPEAT(str,x) 返回str重復x次

REPEAT(str,x)函數:返回str重復x次的結果。

mysql> SELECT repeat('beijing',3);
+-----------------------+
| repeat('beijing',3)   |
+-----------------------+
| beijingbeijingbeijing |
+-----------------------+
1 row in set (0.00 sec)

REPLACE(str,a,b) 用字符串b替換字符串str中所有出現的字符串a

REPLACE(str,a,b)函數:用字符串b替換字符串str中所有出現的字符串a.

mysql> SELECT replace('beijing','bei','nan');
+--------------------------------+
| replace('beijing','bei','nan') |
+--------------------------------+
| nanjing                        |
+--------------------------------+
1 row in set (0.00 sec)

STRCMP(s1,s2) 比較字符串s1和s2

STRCMP(s1,s2)函數:比較字符串s1和s2的ASCII碼值的大小。
如果s1比s2小,那么就返回-1,相等返回0,大于返回1.

mysql> SELECT strcmp('a','b'),strcmp('b','b'),strcmp('c','b');
+-----------------+-----------------+-----------------+
| strcmp('a','b') | strcmp('b','b') | strcmp('c','b') |
+-----------------+-----------------+-----------------+
|              -1 |               0 |               1 |
+-----------------+-----------------+-----------------+
1 row in set (0.00 sec)

TRIM(str) 去掉字符串行尾和行頭的空格

TRIM(str)函數:去掉目標字符串的開頭和結尾的空格。

mysql> SELECT trim('  ab  ');
+----------------+
| trim('  ab  ') |
+----------------+
| ab             |
+----------------+
1 row in set (0.00 sec)

SUBSTRING(str,x,y) 返回從字符串str中的第x位置起y個字符長度的字串。

SUBSTRING(str,x,y)函數:返回從字符串str中的第x位置起y個字符長度的字串。

mysql> SELECT substring('beijing2017',8,4);
+------------------------------+
| substring('beijing2017',8,4) |
+------------------------------+
| 2017                         |
+------------------------------+
1 row in set (0.00 sec)

原創文章,作者:dance_man,如若轉載,請注明出處:http://www.www58058.com/74546

(0)
dance_mandance_man
上一篇 2017-05-01 19:51
下一篇 2017-05-01 21:04

相關推薦

  • sed對比grep之理解

    sed對比grep之理解 很多時候回車按下,沒有結果,或是報錯。 檢查發現都是低級錯誤,關鍵是習慣剛學完grep,有寫習慣沒改過來。 sed語法很重要。script語法寫對了,就成功了一大半,剩下的就是正則表達式的問題了。 sed與grep的區別是 grep是個行過濾器,篩選符合條件的行。也可以只顯示每行匹配到的文本(-o選項),不對文本進行編輯,只是顯示查…

    Linux干貨 2016-08-10
  • 解決Redis 延遲故障

    前一段時間redis客戶端在使用php connect 連接redis 的經常報一個redis server went away 等信息。 首先想到的想到的是reids超時設置的問題,timeout、tcp-keepalive、以及php的default_socket_timeout時間  127.0.0.1:6381> CONFI…

    Linux干貨 2016-02-14
  • 基于虛擬用戶控制的ftp服務

    FTP作為最常見的文件共享服務,可提供文件的上傳,下載等服務;其用戶可分為三類: 匿名用戶:即不需要用戶賬號與密碼即可登錄FTP服務器,此時登錄用戶將會被映射為系統上的ftp用戶。 系統用戶:即用FTP服務器上的用戶賬號與密碼登錄FTP服務器。此種方法雖然在一定程度上對登錄做出了限制,但由于系統賬號的相關權限,則增大了FTP服務器的系統風險; 虛擬用戶:用戶…

    Linux干貨 2016-10-23
  • N26-第二周作業-邢巖(1)

     馬哥門徒-N26-邢巖   度過了一個愉快的春節,又到了上班的時候了!我的Linux基礎學習也進行到了瘋狂記命令的階段,痛并快樂著!那就讓我來說一下Linux上的文件管理類命令都有哪些吧。   Linux的文件相關命令還是蠻多的,我不妨簡單的總結一下,歸結為6類常用的命令: 1、目錄切換類命令   pwd命令:顯示工…

    Linux干貨 2017-02-10
  • 五大主流數據庫模型

    導讀:無論是關系型數據庫還是非關系型數據庫,都是某種數據模型的實現。本文將為大家簡要介紹5種常見的數據模型,讓我們來追本溯源,窺探現在流行的數據庫解決方案背后的神秘世界。 什么是數據模型? 訪問數據庫中的數據取決于數據庫實現的數據模型。數據模型會影響客戶端通過API對數據的操作。不同的數據模型可能會提供或多或少的功能。一般而言,數據模型不會直接提供過多的功能…

    Linux干貨 2015-04-04
欧美性久久久久