SQL 字符串函數(shù)

2021-04-25 17:35 更新

SQL字符串函數(shù)主要用于字符串操作。 下表詳述了重要的字符串函數(shù):

NameDescription
ASCII()返回最左邊字符的數(shù)值
BIN()返回參數(shù)的字符串表示形式
BIT_LENGTH()返回參數(shù)的長度(以位為單位)
CHAR_LENGTH()返回參數(shù)中的字符數(shù)
CHAR()返回每個傳遞的整數(shù)的字符
CHARACTER_LENGTH()CHAR_LENGTH()相同,返回參數(shù)中的字符數(shù)
CONCAT_WS()返回與separator分隔
CONCAT()返回連接的字符串
CONV()在不同數(shù)字之間轉(zhuǎn)換數(shù)字
ELT()返回索引號處的字符串
EXPORT_SET()返回一個字符串,使得對于值位中設(shè)置的每個位,您將獲得一個on字符串,并且對于每個unset位,您將得到一個off字符串
FIELD()返回后續(xù)參數(shù)中第一個參數(shù)的索引(位置)
FIND_IN_SET()返回第二個參數(shù)中第一個參數(shù)的索引位置
FORMAT()返回格式為指定小數(shù)位數(shù)的數(shù)字
HEX()返回十六進(jìn)制值的字符串表示形式
INSERT()在指定位置插入一個子字符串,直到指定的字符數(shù)
INSTR()返回第一次出現(xiàn)子字符串的索引
LCASE()同LOWER()
LEFT()返回指定的最左邊的字符數(shù)
LENGTH()返回字符串的長度(以字節(jié)為單位)
LOAD_FILE()加載命名文件
LOCATE()返回第一次出現(xiàn)子字符串的位置
LOWER()以小寫返回參數(shù)
LPAD()返回字符串參數(shù),用指定的字符串向左填充
LTRIM()刪除前導(dǎo)空格
MAKE_SET()返回一組逗號分隔的字符串,它們具有設(shè)置的位中的相應(yīng)位
MID()返回從指定位置開始的子字符串
OCT()返回八進(jìn)制參數(shù)的字符串表示形式
OCTET_LENGTH()同LENGTH(),返回字符串的長度(以字節(jié)為單位)
ORD()如果參數(shù)的最左邊的字符是多字節(jié)字符,則返回該字符的代碼
POSITION()同LOCATE(),返回第一次出現(xiàn)子字符串的位置
QUOTE()轉(zhuǎn)義要在SQL語句中使用的參數(shù)
REGEXP使用正則表達(dá)式的模式匹配
REPEAT()重復(fù)字符串指定的次數(shù)
REPLACE()替換指定字符串的出現(xiàn)
REVERSE()反轉(zhuǎn)字符串中的字符
RIGHT()返回指定的最右邊字符數(shù)
RPAD()追加字符串指定的次數(shù)
RTRIM()刪除尾隨空格
SOUNDEX()返回由四個字符組成的代碼 (SOUNDEX) 以評估兩個字符串的相似性
SOUNDS LIKESOUNDEX()
SPACE()返回指定數(shù)目個空格的字符串
STRCMP()比較兩個字符串
SUBSTRING_INDEX()返回在分隔符的指定出現(xiàn)次數(shù)之前的字符串中的子字符串
SUBSTRING(), SUBSTR()返回指定的子字符串
TRIM()刪除前導(dǎo)和尾隨空格
UCASE()同UPPER
UNHEX()將每對十六進(jìn)制數(shù)字轉(zhuǎn)換為一個字符
UPPER()轉(zhuǎn)換為大寫

ASCII(STR)

返回字符串str的最左字符的數(shù)值。如果str是空字符串,返回0。,則返回null str為NULL。的ASCII()適用于從0到255的數(shù)字值的字符。

SQL> SELECT ASCII('2');
+---------------------------------------------------------+
| ASCII('2')                                              |
+---------------------------------------------------------+
| 50                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT ASCII('dx');
+---------------------------------------------------------+
| ASCII('dx')                                             |
+---------------------------------------------------------+
| 100                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIN(N)

返回的N,其中N是一個longlong(BIGINT)數(shù)字的二進(jìn)制值的字符串表示。這相當(dāng)于CONV(N,10,2)。,則返回null N為NULL。

SQL> SELECT BIN(12);
+---------------------------------------------------------+
| BIN(12)                                                 |
+---------------------------------------------------------+
| 1100                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIT_LENGTH(STR)

返回位字符串str的長度。

SQL> SELECT BIT_LENGTH('text');
+---------------------------------------------------------+
| BIT_LENGTH('text')                                      |
+---------------------------------------------------------+
| 32                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHAR(N,... [使用charset_name中])

CHAR()解釋每一個參數(shù)n為整數(shù)并返回由這些整數(shù)的代碼值給出的字符的字符串。NULL值被跳過。

SQL> SELECT CHAR(77,121,83,81,'76');
+---------------------------------------------------------+
| CHAR(77,121,83,81,'76')                                 |
+---------------------------------------------------------+
| MySQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHAR_LENGTH(STR)

返回字符測量字符串str的長度。一個多字節(jié)字符算作一個字符。這意味著,對于包含五個二字節(jié)字符,length()返回10,而CHAR_LENGTH一個字符串()返回5。

SQL> SELECT CHAR_LENGTH("text");
+---------------------------------------------------------+
| CHAR_LENGTH("text")                                     |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHARACTER_LENGTH(STR)

CHARACTER_LENGTH()是CHAR_LENGTH()的同義詞。

CONCAT(STR1,STR2,...)

返回從串聯(lián)參數(shù)產(chǎn)生的字符串??赡苡幸粋€或多個參數(shù)。如果所有參數(shù)都是非二進(jìn)制字符串,結(jié)果是一個非二進(jìn)制串。如果參數(shù)包括任何二進(jìn)制串,結(jié)果是一個二進(jìn)制串。一個數(shù)字參數(shù)被轉(zhuǎn)換為等值的二進(jìn)制字符串的形式; 如果要避免這種情況,你可以使用顯式類型轉(zhuǎn)換,如下面的例子:

SQL> SELECT CONCAT('My', 'S', 'QL');
+---------------------------------------------------------+
| CONCAT('My', 'S', 'QL')                                 |
+---------------------------------------------------------+
| MySQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONCAT_WS(分離器,STR1,STR2,...)

CONCAT_WS()表示連接具有分離器和CONCAT是一種特殊形式的()。第一個參數(shù)是的參數(shù)剩下的分隔符。分離器要連接的串之間加入。分隔符可以是一個字符串,如可以的參數(shù)的其余部分。如果隔板是NULL,則結(jié)果為NULL。

SQL> SELECT CONCAT_WS(',','First name','Last Name' );
+---------------------------------------------------------+
| CONCAT_WS(',','First name','Last Name' )                |
+---------------------------------------------------------+
| First name,Last Name                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONV(N,from_base,to_base)

不同數(shù)量的堿基間轉(zhuǎn)換數(shù)字。返回數(shù)N的字符串表示,從from_base基轉(zhuǎn)換為to_base。返回NULL如果任何參數(shù)是NULL。參數(shù)N被解釋為一個整數(shù),但也可以指定為一個整數(shù)或字符串。最小基本為2和最大堿是36。如果to_base是一個負(fù)數(shù),N被看作一個帶符號的數(shù)。否則,N被當(dāng)作無符號。CONV()可與64位精度。

SQL> SELECT CONV('a',16,2);
+---------------------------------------------------------+
| CONV('a',16,2)                                          |
+---------------------------------------------------------+
| 1010                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ELT(N,STR1,STR2,STR3,...)

返回STR1如果N = 1,STR2如果N = 2,等等。,則返回null N大于參數(shù)的數(shù)目大于小于1或。ELT()是FIELD的補(bǔ)()。

SQL> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
+---------------------------------------------------------+
| ELT(1, 'ej', 'Heja', 'hej', 'foo')                      |
+---------------------------------------------------------+
| ej                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

EXPORT_SET(位,開,關(guān)[,分隔符[,NUMBER_OF_BITS]])

返回這樣的字符串,每一點(diǎn)的價值位設(shè)置,你會得到一個關(guān)于字符串,并在值未設(shè)定每一位,你會得到一個關(guān)閉的字符串。在比特位被從右到左(從低階到高階比特)審查。字符串被添加到結(jié)果從左至右,由分離字符串分開(默認(rèn)為逗號字符。,)。檢查位的數(shù)目是由NUMBER_OF_BITS(默認(rèn)為64)給出。

SQL> SELECT EXPORT_SET(5,'Y','N',',',4);
+---------------------------------------------------------+
| EXPORT_SET(5,'Y','N',',',4)                             |
+---------------------------------------------------------+
| Y,N,Y,N                                                 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FIELD(STR,STR1,STR2,STR3,...)

返回其中str1,STR2,STR3,...名單海峽指數(shù)(位置從1開始)。如果找不到海峽則返回0。

SQL> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
+---------------------------------------------------------+
| FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo')          |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FIND_IN_SET(STR,strlist)

如果字符串str是在由N-串的字符串列表strlist返回的1到N的范圍內(nèi)的值。

SQL> SELECT FIND_IN_SET('b','a,b,c,d');
+---------------------------------------------------------+
| SELECT FIND_IN_SET('b','a,b,c,d')                       |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FORMAT(X,D)

格式數(shù)X像'#,###,###。##',格式四舍五入至小數(shù)點(diǎn)后D位,而返回結(jié)果為一個字符串。如果D為0,結(jié)果沒有小數(shù)點(diǎn)或小數(shù)部分。

SQL> SELECT FORMAT(12332.123456, 4);
+---------------------------------------------------------+
| FORMAT(12332.123456, 4)                                 |
+---------------------------------------------------------+
| 12,332.1235                                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

HEX(N_or_S)

如果N_or_S是一個數(shù)字,返回N,其中N是一個longlong(BIGINT)數(shù)字的十六進(jìn)制值的字符串表示。這相當(dāng)于CONV(N,10,16)。

如果N_or_S是一個字符串,返回N_or_S其中N_or_S每個字符轉(zhuǎn)換為兩個十六進(jìn)制數(shù)字的十六進(jìn)制字符串表示。

SQL> SELECT HEX(255);
+---------------------------------------------------------+
| HEX(255)                                                |
+---------------------------------------------------------+
| FF                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT 0x616263;
+---------------------------------------------------------+
| 0x616263                                                |
+---------------------------------------------------------+
| abc                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

INSERT(STR,POS,LEN,中newstr)

返回字符串str,在位置POS和len字符長的字符串替換中newstr開頭的字符串。如果pos不是字符串的長度內(nèi)返回原始字符串。取代從位置pos串的其余部分如果len不串的其余部分的長度范圍內(nèi)。返回NULL如果任何參數(shù)是NULL。

SQL> SELECT INSERT('Quadratic', 3, 4, 'What');
+---------------------------------------------------------+
| INSERT('Quadratic', 3, 4, 'What')                       |
+---------------------------------------------------------+
| QuWhattic                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

INSTR(STR,SUBSTR)

返回字符串str子串SUBSTR中第一次出現(xiàn)的位置。這是一樣的本地(兩個參數(shù)的形式),除此以外,參數(shù)的順序是相反的。

SQL> SELECT INSTR('foobarbar', 'bar');
+---------------------------------------------------------+
| INSTR('foobarbar', 'bar')                               |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LCASE(STR)

LCASE()是較低的()的同義詞。

LEFT(STR,LEN)

如果任何參數(shù)是NULL,返回從字符串str,或NULL最左邊的len個字符。

SQL> SELECT LEFT('foobarbar', 5);
+---------------------------------------------------------+
| LEFT('foobarbar', 5)                                    |
+---------------------------------------------------------+
| fooba                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

長度(STR)

返回字符串str的長度,以字節(jié)為單位。一個多字節(jié)字符算作多字節(jié)。這意味著,對于包含五個二字節(jié)字符,length()返回10,而CHAR_LENGTH一個字符串()返回5。

SQL> SELECT LENGTH('text');
+---------------------------------------------------------+
| LENGTH('text')                                          |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOAD_FILE(FILE_NAME)

讀取該文件,作為一個字符串返回文件內(nèi)容。要使用此功能,該文件必須位于服務(wù)器主機(jī)上,則必須指定完整路徑的文件,你必須有FILE權(quán)限。該文件必須由所有它的尺寸小于max_allowed_pa??cket個字節(jié)可讀。

如果該文件不存在或無法讀取,因?yàn)樯鲜鰲l件之一不滿足,則函數(shù)返回NULL。

由于SQL 5.0.19,即給定為文字字符串文件名的character_set_filesystem系統(tǒng)變量控制的解釋。

SQL> UPDATE table_test
    -> SET blob_col=LOAD_FILE('/tmp/picture')
	-> WHERE id=1;
...........................................................

LOCATE(SUBSTR,STR),本地(SUBSTR,STR,POS)

第一種語法返回字符串str子串SUBSTR中第一次出現(xiàn)的位置。第二個語法返回字符串str子串SUBSTR位置pos處開始第一次出現(xiàn)的位置。如果SUBSTR不是str中,則返回0。

SQL> SELECT LOCATE('bar', 'foobarbar');
+---------------------------------------------------------+
| LOCATE('bar', 'foobarbar')                              |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOWER(STR)

返回改為根據(jù)當(dāng)前字符集映射到小寫字母的字符串str。

SQL> SELECT LOWER('QUADRATICALLY');
+---------------------------------------------------------+
| LOWER('QUADRATICALLY')                                  |
+---------------------------------------------------------+
| quadratically                                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LPAD(STR,LEN,padstr填補(bǔ))

返回字符串str,左填充用字符串padstr填補(bǔ)到len字符長度。如果str的長度大于len,則返回值被縮短至len個字符。

SQL> SELECT LPAD('hi',4,'??');
+---------------------------------------------------------+
| LPAD('hi',4,'??')                                       |
+---------------------------------------------------------+
| ??hi                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LTRIM(STR)

返回刪除了前導(dǎo)空格字符的字符串str。

SQL> SELECT LTRIM('  barbar');
+---------------------------------------------------------+
| LTRIM('  barbar')                                       |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MAKE_SET(位,STR1,STR2,...)

返回一組值(含分隔子字符串,個字符),包括那些在設(shè)置位的相應(yīng)位的字符串。STR1對應(yīng)于位0,STR2到第1位,依此類推。str1中,str2的NULL值,......不添加到結(jié)果。

SQL> SELECT MAKE_SET(1,'a','b','c');
+---------------------------------------------------------+
| MAKE_SET(1,'a','b','c')                                 |
+---------------------------------------------------------+
| a                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MID(STR,POS,LEN)

MID(STR,POS,LEN)是SUBSTRING的同義詞(STR,POS,LEN)。

OCT(N)

返回N,其中N是一個longlong(BIGINT)數(shù)字八進(jìn)制值的字符串表示。這相當(dāng)于CONV(N,10,8)。,則返回null N為NULL。

SQL> SELECT OCT(12);
+---------------------------------------------------------+
| OCT(12)                                                 |
+---------------------------------------------------------+
| 14                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

OCTET_LENGTH(STR)

OCTET_LENGTH()是LENGTH()的同義詞。

ORD(STR)

如果字符串str的最左邊的字符是一個多字節(jié)字符,返回該字符,使用此公式其組成字節(jié)的數(shù)值計算的代碼:

  (1st byte code)
+ (2nd byte code . 256)
+ (3rd byte code . 2562) ...

如果最左邊的字符不是一個多字節(jié)字符,ORD()返回相同的值作為ASCII()函數(shù)。

SQL> SELECT ORD('2');
+---------------------------------------------------------+
| ORD('2')                                                |
+---------------------------------------------------------+
| 50                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

POSITION(SUBSTR IN STR)

POSITION(SUBSTR str中)可以找到同義詞(SUBSTR,STR)。

QUOTE(STR)

引號的字符串,以產(chǎn)生可以用作SQL語句中正確轉(zhuǎn)義數(shù)據(jù)值的結(jié)果。該字符串返回單引號和單引號('),反斜線('\'),ASCII NUL和Control-Z前面有反斜杠的每個實(shí)例封閉。如果參數(shù)為NULL,則返回值是不封閉單引號的單詞“NULL”。

SQL> SELECT QUOTE('Don\'t!');
+---------------------------------------------------------+
| QUOTE('Don\'t!')                                        |
+---------------------------------------------------------+
| 'Don\'t!'                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

注:請檢查您的安裝有任何錯誤使用此功能,那么不要使用此功能。

EXPR正則表達(dá)式模式

這個函數(shù)執(zhí)行對圖案expr的模式匹配。返回1如果expr匹配pat; 否則返回0。如果expr或拍拍為NULL,則結(jié)果為NULL。REGEXP不區(qū)分大小寫,與二進(jìn)制字符串使用時除外。

SQL> SELECT 'ABCDEF' REGEXP 'A%C%%';
+---------------------------------------------------------+
| 'ABCDEF' REGEXP 'A%C%%'                                 |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

另一個例子是:

SQL> SELECT 'ABCDE' REGEXP '.*';
+---------------------------------------------------------+
|  'ABCDE' REGEXP '.*'                                    |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

讓我們看一個例子:

SQL> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+---------------------------------------------------------+
| 'new*\n*line' REGEXP 'new\\*.\\*line'                   |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

重復(fù)序列(STR,計數(shù))

返回由字符串str重復(fù)的次數(shù)的字符串。如果計數(shù)小于1,返回一個空字符串。如果str或計數(shù)為NULL,則返回NULL。

SQL> SELECT REPEAT('SQL', 3);
+---------------------------------------------------------+
| REPEAT('SQL', 3)                                      |
+---------------------------------------------------------+
| SQLSQLSQL                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

REPLACE(STR,from_str均被,to_str)

返回與字符串的所有出現(xiàn)由字符串to_str from_str均被替換字符串str。REPLACE()的from_str均被搜索時進(jìn)行區(qū)分大小寫的匹配。

SQL> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
+---------------------------------------------------------+
| REPLACE('www.mysql.com', 'w', 'Ww')                     |
+---------------------------------------------------------+
| WwWwWw.mysql.com                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

REVERSE(STR)

返回并反轉(zhuǎn)字符順序的字符串str。

SQL> SELECT REVERSE('abcd');
+---------------------------------------------------------+
| REVERSE('abcd')                                         |
+---------------------------------------------------------+
| dcba                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RIGHT(STR,LEN)

如果任何參數(shù)是NULL,返回從字符串str,或NULL最右邊的len個字符。

SQL> SELECT RIGHT('foobarbar', 4);
+---------------------------------------------------------+
| RIGHT('foobarbar', 4)                                   |
+---------------------------------------------------------+
| rbar                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RPAD(STR,LEN,padstr填補(bǔ))

返回字符串str,右側(cè)填充字符串padstr填補(bǔ)到len字符長度。如果str的長度大于len,則返回值被縮短至len個字符。

SQL> SELECT RPAD('hi',5,'?');
+---------------------------------------------------------+
| RPAD('hi',5,'?')                                        |
+---------------------------------------------------------+
| hi???                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RTRIM(STR)

返回尾隨去掉空格字符的字符串str。

SQL> SELECT RTRIM('barbar   ');
+---------------------------------------------------------+
| RTRIM('barbar   ')                                      |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SOUNDEX(STR)

返回從STR一個同音字符串。兩個字符串聽起來差不多了應(yīng)該有相同的同音字符串。一個標(biāo)準(zhǔn)的soundex字符串是四個字符長,但SOUNDEX()函數(shù)返回一個任意長的字符串。您可以使用SUBSTRING()的結(jié)果得到一個標(biāo)準(zhǔn)的同音字符串。在str中所有非字母字符將被忽略。在AZ范圍之外的所有國際字母符號被視為元音字母。

SQL> SELECT SOUNDEX('Hello');
+---------------------------------------------------------+
| SOUNDEX('Hello')                                        |
+---------------------------------------------------------+
| H400                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

表達(dá)式1聽起來像表達(dá)式2

這是相同的SOUNDEX(表達(dá)式1)= SOUNDEX(表達(dá)式2)。

SPACE(N)

返回由N空格字符的字符串。

SQL> SELECT SPACE(6);
+---------------------------------------------------------+
| SELECT SPACE(6)                                         |
+---------------------------------------------------------+
| '      '                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STRCMP(STR1,STR2)

比較兩個字符串,返回0,如果這兩個字符串相等,則返回-1,如果第一個參數(shù)是根據(jù)當(dāng)前的排序順序,否則,返回1小于第二個。

SQL> SELECT STRCMP('MOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'MOHD')                                  |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

另一個例子是:

SQL> SELECT STRCMP('AMOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('AMOHD', 'MOHD')                                 |
+---------------------------------------------------------+
| -1                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

讓我們看一個例子:

SQL> SELECT STRCMP('MOHD', 'AMOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'AMOHD')                                 |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBSTRING(STR,POS)

SUBSTRING(STR FROM POS)

SUBSTRING(STR,POS,LEN)

SUBSTRING(STR FROM銷售點(diǎn)LEN)

沒有l(wèi)en參數(shù)的格式從字符串str位置pos處開始返回一個字符串。用len參數(shù)的格式從字符串str長返回一個字符串len個字符,從位置pos開始。從使用的形式是標(biāo)準(zhǔn)的SQL語法。另外,也可以用于POS負(fù)值。在這種情況下,串的開始是從字符串的末尾,而不是一開始POS字符。負(fù)值可以被用于在任何的該函數(shù)的形式POS。

SQL> SELECT SUBSTRING('Quadratically',5);
+---------------------------------------------------------+
| SSUBSTRING('Quadratically',5)                           |
+---------------------------------------------------------+
| ratically                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT SUBSTRING('foobarbar' FROM 4);
+---------------------------------------------------------+
| SUBSTRING('foobarbar' FROM 4)                           |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT SUBSTRING('Quadratically',5,6);
+---------------------------------------------------------+
| SUBSTRING('Quadratically',5,6)                          |
+---------------------------------------------------------+
| ratica                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBSTRING_INDEX(STR,DELIM,計數(shù))

返回從字符串str分隔符delim中的計數(shù)發(fā)生前的子字符串。如果計數(shù)是正的,則返回一切最終定界符(從左邊算起)的左側(cè)。如果count是負(fù)數(shù),則返回一切最終定界符(從右邊開始計數(shù))的權(quán)利。SUBSTRING_INDEX()為DELIM搜索時進(jìn)行區(qū)分大小寫的匹配。

SQL> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
+---------------------------------------------------------+
| SUBSTRING_INDEX('www.mysql.com', '.', 2)                |
+---------------------------------------------------------+
| www.mysql                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TRIM([{BOTH |領(lǐng)導(dǎo)| TRAILING} [remstr] FROM] STR)

TRIM([remstr FROM] STR)

返回刪除了所有remstr前綴或后綴字符串str。如果兩個,領(lǐng)導(dǎo),或尾隨給出沒有說明符,則假定BOTH。remstr為可任選的,并且如果未指定,空格被刪除。

SQL> SELECT TRIM('  bar   ');
+---------------------------------------------------------+
| TRIM('  bar   ')                                        |
+---------------------------------------------------------+
| bar                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
+---------------------------------------------------------+
| TRIM(LEADING 'x' FROM 'xxxbarxxx')                      |
+---------------------------------------------------------+
| barxxx                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
+---------------------------------------------------------+
| TRIM(BOTH 'x' FROM 'xxxbarxxx')                         |
+---------------------------------------------------------+
| bar                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
+---------------------------------------------------------+
| TRIM(TRAILING 'xyz' FROM 'barxxyz')                     |
+---------------------------------------------------------+
| barx                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UCASE(STR)

UCASE()是UPPER()的同義詞。

UNHEX(STR)

執(zhí)行HEX(STR)的逆運(yùn)算。也就是說,它解釋每對十六進(jìn)制數(shù)字的參數(shù)作為數(shù)字,并將其轉(zhuǎn)換到由數(shù)字表示的字符。所得字符被返回為二進(jìn)制字符串。

SQL> SELECT UNHEX('4D7953514C');
+---------------------------------------------------------+
| UNHEX('4D7953514C')                                     |
+---------------------------------------------------------+
| SQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

在參數(shù)字符串中的字符必須是合法的十六進(jìn)制數(shù)字:'0'..'9','A'..'F','一'..'F'。如果UNHEX()遇到在參數(shù)任何非十六進(jìn)制數(shù)字,它返回NULL。

UPPER(STR)

返回改為根據(jù)當(dāng)前字符集映射為大寫的所有字符的字符串str。

SQL> SELECT UPPER('Allah-hus-samad');
+---------------------------------------------------------+
| UPPER('Allah-hus-samad')                                |
+---------------------------------------------------------+
| ALLAH-HUS-SAMAD                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號