mysql中的字符函數舉例
1:字符函數
concat()
說明:將字符串連接,可以是一個或多個字符串。若都是非二進制的字符,那麽返回的結果也是非二進制的。若包含任何二進制字符,那麽結果則是二進制的。若是數值型的,也將轉換成非二進制的形式。若其中任意一個字符是NULL,則CONCAT()返回的結果為NULL.。
語法:concat(str1,str2......)
舉例:
SELECT CONCAT(‘你‘,‘是‘,‘誰‘);結果為:你是誰
SELECT CONCAT(‘你‘,NULL,‘誰‘); 結果為:NULL
SELECT CONCAT(13.2);結果為:13.2
concat_ws()
說明:表示用分隔符將字符串連接,是一種特殊形式的連接函數。第一個參數表示分隔符,各字符串之間通過分隔符連接,分隔符可以是一個字符串,也可以是其他形式,如果分隔符為NULL,那麽返回的結果也是NULL。
語法:CONCAT_WS(separator,str1,str2,…);
舉例:
SELECT CONCAT_WS(‘-‘,‘1‘,‘2‘,‘3‘); 結果為:1-2-3
SELECT CONCAT_WS(NULL,‘1‘,‘2‘,‘3‘); 結果為:NULL
ELT()
說明:ELT函數是指返回一個字符串List的第N個元素,如果N=1,返回str1;如果N=2,返回str2. 如果N小於1或大於字符串元素的個數,則返回NULL。
語法:ELT(N,str1,str2,str3,…);
舉例:
SELECT ELT(4,‘1‘,‘2‘,‘3‘); 結果為:NULL
SELECT ELT(1,‘你‘,‘是‘,‘誰‘); 結果為:你
FIELD()
說明:FIELD函數是指返回某字符串在字符串List的位置,如果字符串List未找到指定的字符串,則返回0. 若FIELD()中所有的參數都是字符串型,則將以字符串類型作為比較;如果所有的參數都是數字型,則將以數字類型作為比較;否則,以double類型進行比較。如果字符串為NULL,則返回的值為0,因為NULL和所有值比較都不相等。
語法:FIELT(N,str1,str2,str3,…);
舉例:
SELECT FIELD(‘你‘,‘你‘,‘是‘,‘誰‘); 結果為:1
SELECT FIELD(‘好‘,‘你‘,‘是‘,‘誰‘); 結果為:0
SELECT FIELD(NULL,‘你‘,‘是‘,‘誰‘); 結果為:0
INSERT()
說明:從起始位置截取一定長度的字符串,用新字符串代替截取的字符串,返回結果。如果位置不在字符串的長度範圍內,則返回原始字符串。如果長度不在字符串剩余長度範圍內,則從起始位置將剩余的字符串替換。如果任意一個參數為NULL,則結果返回NULL。
語法:INSERT(str,pos,len,newstr);
舉例:
SELECT INSERT(‘Quadratic‘,3,4,‘What‘); 結果為:QuWhattic
SELECT INSERT(‘Quadratic‘,-1,4,‘What‘); 結果為:Quadratic
SELECT INSERT(‘Quadratic‘,3,100,‘What‘); 結果為:QuWhat
SELECT INSERT(‘Quadratic‘,NULL,100,‘What‘); 結果為:NULL
INSTR()
說明:返回字符串中所要截取的字符串第一次出現的位置。此函數的功能和帶有兩個參數的LOCATE()函數相同,只是參數的順序是相反的。
語法:INSTR(str,substr);
舉例:
SELECT INSTR(‘foobarbar‘,bar‘); 結果為:4
SELECT INSTR(‘xbar‘,‘foobar‘); 結果為:0
LOCATE()
說明:帶有兩個參數的LOCATE()函數返回字符串中所要截取的字符串第一次出現的位置。三個參數的LOCATE()指的是從字符串的指定位置開始,得出所要截取的字符串第一次出現的位置
語法:LOCATE(substr,str),LOCATE(substr,str,pos)
舉例;
SELECT LOCATE(‘bar‘,‘foobarbar‘); 結果為:4
SELECT LOCATE(‘xbar‘,‘foobar‘);;結果為:0
SELECT LOCATE(‘bar‘,‘foobarbar‘,5);結果為:7
SUBSTRING()
說明:和SUBSTR()同義。共有4種形式。沒有len參數的形式,是指從指定的位置開始截取字符串,結果是截取後的字符串;有len參數的,是指從指定的位置開始截取len長度的字符串;帶有FROM的形式,是標準的SQL形式,但其位置可能是一個負數,則截取字符串是從字符串最後位置開始截取,而不是起始位置。
語法:SUBSTRING(str,pos),SUBSTRING(str FROM pos),SUBSTRING(str,pos,len),SUBSTRING(str FROM pos FOR len)
舉例:省略。。。
SUBSTRING_INDEX()
說明:返回一個字符串中,從某個標記出現的某個次數開始截取的結果。如果次數是一個正值,則返回這個字符左邊的所有字符;如果這個值是一個負值,則返回這個字符右邊的所有字符。
語法:SUBSTRING_INDEX(str,delim,count)
舉例:
SELECT SUBSTRING_INDEX(‘www.mysql.com‘,‘.‘,2);結果為:www.mysql
SELECT SUBSTRING_INDEX(‘www.mysql.com‘,‘.‘,-2);結果為:mysql.com
mysql中的字符函數舉例