1.UPPER和UCASE返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成大寫。該函數對多位元組是可靠的。2.LOWER和LCASE返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成小寫。該函數對多位元組是 ...
1.UPPER和UCASE
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成大寫。該函數對多位元組是可靠的。
2.LOWER和LCASE
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成小寫。該函數對多位元組是可靠的。
3.FIND_IN_SET(str,strlist)
如果字元串str在由N子串組成的表strlist之中,返回一個1到N的值。一個字元串表是被“,”分隔的子串組成的一個字元串。如果第一個參數是一個常數字元串並且第二個參數是一種類型為SET的列,FIND_IN_SET()函數被優化而使用位運算!如果str不是在strlist裡面或如果 strlist是空字元串,返回0。如果任何一個參數是NULL,返回NULL。如果第一個參數包含一個“,”,該函數將工作不正常。
4.FIELD(str,str1,str2,str3,…)
返回str在str1, str2, str3, …清單的索引。如果str沒找到,返回0。FIELD()是ELT()反運算。
SELECT FIELD('A','AB','A','C')
--返回2
5.ELT(N,str1,str2,str3,…)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小於1或大於參數個數,返回NULL。ELT()是FIELD()反運算。
6.REPLACE(str,from_str,to_str)
返回字元串str,其字元串from_str的所有出現由字元串to_str代替。
SELECT REPLACE('ABC','B','123')
--返回A123C
7.REPEAT(str,count)
返回由重覆countTimes次的字元串str組成的一個字元串。
如果count <= 0,返回一個空字元串。如果str或count是NULL,返回NULL。
SELECT REPEAT('A',5);
--返回AAAAA
8.REVERSE(str)
返回顛倒字元順序的字元串str。
SELECT REVERSE('ABC');
--返回CBA
9.INSERT(str,pos,len,newstr)
返回字元串str在位置pos起始的子串且len個字元長得子串由字元串newstr代替。
SELECT INSERT('ABC123',4,2,'DE')
--返回ABCDE3
10.SUBSTRING(str FROM pos)
從字元串str的起始位置pos返回一個子串。
PS:MySQL資料庫的下標是從1開始的。
SELECT SUBSTRING('ABC123' FROM 4);
--返回123
11.SUBSTRING_INDEX(str,delim,count)
返回從字元串str的第count個出現的分隔符delim之後的子串。如果count是正數,返回最後的分隔符到左邊(從左邊數) 的所有字元。如果count是負數,返回最後的分隔符到右邊的所有字元(從右邊數)。
SELECT SUBSTRING_INDEX('AB1AB2AB3AB4','AB',3);
--返回AB1AB2
12.LTRIM(str)
返回刪除了其前置空格字元的字元串str。
SELECT CONCAT('1',LTRIM(' ABC '),'2')
返回1ABC 2
13.RTRIM(str)
返回刪除了其拖後空格字元的字元串str。
SELECT CONCAT('1',RTRIM(' ABC '),'2')
返回返回1ABC 2
14.TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
返回字元串str,其所有remstr首碼或尾碼被刪除了。
如果沒有修飾符BOTH、LEADING或TRAILING給出,BOTH被假定。
如果remstr沒被指定,空格被刪除。
SELECT CONCAT('1',TRIM(' ABC '),'2');
返回返回1ABC2
15.MID(str,pos,len)
從字元串str返回一個len個字元的子串,從位置pos開始。
SELECT MID('ABC123',4,2);
返回返回12
16.LPAD(str,len,padstr)
返回字元串str,左面用字元串padstr填補直到str是len個字元長。
SELECT LPAD('1',5,'-');
返回----1
17.RPAD(str,len,padstr)
返回字元串str,右面用字元串padstr填補直到str是len個字元長。
SELECT RPAD('1',5,'-');
返回1----
18. LEFT(str,len)
返回字元串str的最左面len個字元。
19.RIGHT(str,len)
返回字元串str的最右面len個字元。
20.位置控制函數
POSITION(substr IN str)
返回子串substr在字元串str第一個出現的位置,如果substr不是在str裡面,返回0.
LOCATE(substr,str,pos)
返回子串substr在字元串str第一個出現的位置,從位置pos開始。如果substr不是在str裡面,返回0。
INSTR(str,substr)
返回子串substr在字元串str中的第一個出現的位置。這與有2個參數形式的LOCATE()相同,除了參數被顛倒。
SELECT POSITION('AB' IN '123ABC');
--返回4
SELECT LOCATE('AB','AB1AB2AB3',5);
--返回7
SELECT INSTR('123AB1AB2AB3','AB');
--返回4
21.得到字元串長度的函數
LENGTH(str),計算欄位的長度(位元組長度)。
OCTET_LENGTH(str),計算字元串的位元組數,在utf8下, 一個中文占據3個長度; gbk下,一個中文占據2個長度.
CHAR_LENGTH(str), 返回值為字元串str 的長度,長度的單位為字元。一個多位元組字元算作一個單字元。
CHARACTER_LENGTH(str),CHARACTER_LENGTH()是CHAR_LENGTH()的同義詞。
BIT_LENGTH(str) 返回2進位長度。
SELECT LENGTH('你好123abc'); --12
SELECT OCTET_LENGTH('你好123abc'); --12
SELECT CHAR_LENGTH('你好123abc'); --8
SELECT CHARACTER_LENGTH('你好123abc'); --8
22.合併多個字元串,或者表中的多個欄位
CONCAT(str1,str2,…)
返回來自於參數連結的字元串。如果任何參數是NULL,返回NULL。可以有超過2個的參數。
一個數字參數被變換為等價的字元串形式。
SELECT CONCAT(123,'ABC');
23.進位轉換
BIN(N):返回二進位值N的一個字元串表示,在此N是一個長整數(BIGINT)數字,這等價於CONV(N,10,2)。如果N是NULL,返回NULL。
OCT(N):返回八進位值N的一個字元串的表示,在此N是一個長整型數字,這等價於CONV(N,10,8)。如果N是NULL,返回NULL。
HEX(N):返回十六進位值N一個字元串的表示,在此N是一個長整型(BIGINT)數字,這等價於CONV(N,10,16)。如果N是NULL,返回NULL。
ASCII(str):返回字元串str的最左面字元的ASCII代碼值。如果str是空字元串,返回0。如果str是NULL,返回NULL。