天天看點

char截取字元串_史上最全的MySQL 字元串函數,趕緊收藏!!

char截取字元串_史上最全的MySQL 字元串函數,趕緊收藏!!
char截取字元串_史上最全的MySQL 字元串函數,趕緊收藏!!

點選上方藍字關注我們

本文轉載自極客學院,https://wiki.jikexueyuan.com/project/mysql/useful-functions/string-functions.html,不涉及任何商業用途,如有侵權,請聯系背景删除。

ASCII(str)

傳回字元串

str

中最左邊字元的 ASCII 代碼值。如果該字元串為空字元串,則傳回0。如果字元串為 NULL 則傳回 NULL。因為ASCII碼表能表示的字元為256個,是以

ASCII()

傳回值在0-255之間。示例如下:

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

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

BIN(N)

傳回十進制數值 N 的二進制數值的字元串表現形式。其中,N 是一 BIGINT 型數值。該函數等同于 CONV(N, 10, 2)。如果 N 為 NULL,則傳回 NULL。示例如下:

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

BIT_LENGTH(str)

傳回字元串 str 所占的位長度。示例如下:

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

CHAR(N,... [USING charset_name])

會将每一個參數 N 都解釋為整數,傳回由這些整數在 ASCII 碼中所對應字元所組成的字元串。忽略 NULL 值。示例如下:

mysql> 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 的字元串長度(字元串中到底有幾個字元)。多位元組字元會被當成單字元對待,是以如果一個字元串包含5個雙位元組字元,LENGTH() 傳回10,而 CHAR_LENGTH() 會傳回5。示例如下:

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

CHARACTER_LENGTH(str)

與函數 CHAR_LENGTH() 作用相同。

CONCAT(str1,str2,...)

将一衆字元串參數加以連接配接,傳回結果字元串。可能有1或多個參數。如果參數中都是非二進制字元串,結果也是非二進制字元串。如果參數包含任何二進制字元串,結果也是二進制字元串。數值型參數會被轉化成相應的二進制字元串形式。如果想避免這樣,可以使用顯式的類型轉換,如下例所示:

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

CONCAT_WS(separator,str1,str2,...)

一種特殊的 CONCAT 函數。利用分隔符 separator 參數來連接配接後續的參數 str1、str2……分隔符添加在後續參數之間,與後續參數一樣,它也可以是一個字元串。如果該分隔符參數為 NULL,則結果也是 NULL。示例如下:

mysql> 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)

将數值在不同進制間轉換。将數值型參數 N 由初始進制 from_base 轉換為目标進制 to_base 的形式并傳回。如果任何參數為 NULL,則傳回 NULL。N 可以是整數,但也可以是字元串。進制取值範圍為2-36。如果 to_base 為負值,N 被認為是有符号數值;反之,N被認為是無符号數值。函數運算精度為64位。示例如下:

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

ELT(N,str1,str2,str3,...)

如果 N = 1,則傳回 str1,如果N = 2 則傳回 str2,以此類推。如果 N 小于1或大于參數個數,則傳回 NULL。ELT() 是 FIELD() 的功能補充函數。示例如下:

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

EXPORT_SET(bits,on,off[,separator[,number_of_bits]])

對于 bits 中的每一位,都能得到一個on 字元串,對于未在bits中的每個比特,則得到off字元串。bits 中的比特從右向左(從低位到高位比特)排列,而字元串則是按照從左至右的順序添加到結果上,并由 separator 字元串分隔(預設采用逗号 ,)。bits 中的位數由 number_of_bits 提供,如果不指定,則預設為64。如果大于64,則會自動截取為64,它是一個無符号整形值,是以上-1也和64具有一樣的效果。

mysql> 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,...)

傳回 str 在後面的參數列(str1、str2、str3……)中的索引(起始索引為1)。如果未在參數列中發現 str 則傳回0。

mysql> 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 中,則傳回其在 strlist 中的索引(字元串清單 strlist 的初始索引為1)。示例如下:

mysql> 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)

将數值參數 X 以'#,###,###.##' 的形式進行格式化,并四舍五入到小數點後 D 位處,然後将格式化結果以字元串形式傳回。如果 D 為0,則結果沒有小數部分。示例如下:

mysql> 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 為數值時,以16進制數的字元串形式傳回 N 的值,N 為 BIGINT 型值。該函數作用等同于 CONV(N, 10, 16)。

當 N_or_S 為字元串時,傳回 N_or_S 的16進制字元串形式,N_or_S 中的每個字元都被轉換為2個16進制數字。示例如下:

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

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

INSERT(str,pos,len,newstr)

在原始字元串 str 中,将自左數第 pos 位開始,長度為 len 個字元的字元串替換為新字元串 newstr,然後傳回經過替換後的字元串。如果 pos 未在原始字元串長度内,則傳回原始字元串。如果 len 不在原始字元串長度内,則傳回原始字元串中自 pos 位起後面剩餘的字元串。如果函數中任一參數為 NULL,則傳回 NULL。示例如下:

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

INSTR(str,substr)

傳回 substr 在 str 中第一次出現時的位置(也就是索引)。作用類似于雙參數版本的 LOCATE() 函數,隻不過參數的次序調換了過來。示例如下:

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

LCASE(str)

等同于 LOWER()。

LEFT(str,len)

傳回字元串 str 自左數的 len 個字元。如果任一參數為 NULL,則傳回 NULL。示例如下:

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

LENGTH(str)

傳回字元串 str 的位元組長度。多位元組字元被如實計算為多位元組。是以,對于包含5個雙位元組字元(如中文字元)的字元串,LENGTH() 傳回10,而 CHAR_LENGTH() 傳回5。示例如下:

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

LOAD_FILE(file_name)

讀取檔案并以字元串形式傳回檔案内容。使用該函數時,檔案必須位于伺服器主機中,且必須制定該檔案的完整路徑名。必須擁有 FILE 權限。檔案對于所有人都必須是可讀狀态,而且檔案尺寸也必須小于 max_allowed_packet 位元組。

如果因為未滿足上述幾個條件,進而檔案不存在于伺服器主機中,或者不可讀,則函數傳回 NULL。

自 MySQL 5.0.19 起,character_set_filesystem 系統變量負責對字元串形式檔案名加以解讀。示例如下:

mysql> UPDATE table_test
    -> SET blob_col=LOAD_FILE('/tmp/picture')
    -> WHERE id=1;
...........................................................
LOCATE(substr,str), LOCATE(substr,str,pos)
           

第一種格式函數的作用如下:傳回 substr 在 str 中第一次出現的位置(即索引)。第二種格式函數則傳回自 str 指定位置 pos (即索引)起, substr 在 str 中第一次出現的位置。如果在 str 中未找到 substr,則兩種函數都傳回0。示例如下:

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

LOWER(str)

根據目前所采用的字元集映射關系,将 str 所有字元都轉為小寫,并傳回新字元串。示例如下:

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

LPAD(str,len,padstr)

左補齊函數。将字元串 str 左側利用字元串 padstr 補齊為整體長度為 len 的字元串。如果 str 大于 len,則傳回值會縮減到 len 個字元。示例如下:

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

LTRIM(str)

将字元串 str 中前部的空格字元去除,然後傳回新的 str 字元串。示例如下:

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

MAKE_SET(bits,str1,str2,...)

傳回一個集合值(是一個由字元 , 所分隔的衆多子字元串所組合而成的字元串),該集合中包含的字元串的比特數等于bits 集合中的對應比特數。例如,str1 對應着 bit 0,str2 對應 bit 1,以此類推。str1、str2……中的 NULL 值将不會添加到結果中。示例如下:

mysql> 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) 作用等同于 SUBS

TRING(str,pos,len)

OCT(N)

以字元串形式傳回 N 的八進制數,N 是一個BIGINT 型數值。作用相當于CONV(N,10,8)。如果 N 為 NULL,則傳回 NULL。示例如下:

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

OCTET_LENGTH(str)

OCTET_LENGTH() 作用等同于 LENGTH()。

ORD(str)

如果 str 最左邊的字元是一個多位元組字元,利用以下公式計算傳回該字元的 ASCII 代碼值。

(第一個位元組的 ASCII 代碼)

+ (第1個位元組的 ASCII 代碼 × 256)

+ (第3個位元組的 ASCII 代碼 × 2562)……

如果最左邊的字元不是多位元組字元,則函數按照 ASCII() 方式傳回值。示例如下:

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

POSITION(substr IN str)

作用等同于 LOCATE(substr,str)。

QUOTE(str)

産生一個在SQL語句中可用作正确轉義資料值的結果。将 str 中的每一個單引号(')、反轉杠()、 ASCII的NUL值,以及Control+Z組合前加上反斜杠,最後再補足左右閉合用的單引号。如果參數為 NULL,則傳回 NULL 的字元串形式(不用單引号閉合),示例如下:

mysql> SELECT QUOTE('Don't!');
+---------------------------------------------------------+
| QUOTE('Don't!')                                        |
+---------------------------------------------------------+
| 'Don't!'                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)
           
注意:檢查一下,如果安裝的 MySQL 不支援這個函數,則不要使用。

expr REGEXP pattern

将 expr 與 pattern 進行模式比對。如果相比對則傳回1,否則傳回0。如果 expr 與 pattern 兩個參數中有一個為 NULL,則結果也為 NULL。除了在處理二進制字元串時,REGEXP 對大小寫并不敏感。第1個示例如下:

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

第2個執行個體:

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

第3個示例:
mysql> SELECT 'new*n*line' REGEXP 'new*.*line';
+---------------------------------------------------------+
| 'new*n*line' REGEXP 'new*.*line'                   |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)
           

REPEAT(str,count)

将字元串 str 重複 count 次,傳回結果字元串。如果 count 小于1,則傳回一個空字元串。如果 str 或 count 為 NULL,則傳回 NULL。示例如下:

mysql> SELECT REPEAT('MySQL', 3);
+---------------------------------------------------------+
| REPEAT('MySQL', 3)                                      |
+---------------------------------------------------------+
| MySQLMySQLMySQL                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)
           

REPLACE(str,from_str,to_str)

查找字元串 str 中出現的 from_str ,将其都更換為 to_str。在查找 from_str 時,函數對大小寫是敏感的。示例如下:

mysql> 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)

以反向順序傳回 str 所有字元。示例如下:

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

RIGHT(str,len)

傳回 str 右邊末 len 位的字元。如果有的參數是 NULL 值,則傳回 NULL。

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

RPAD(str,len,padstr)

在 str 右方補齊 len 位的字元串 padstr,傳回新字元串。如果 str 長度大于 len,則傳回值的長度将縮減到 len 所指定的長度。示例如下:

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

RTRIM(str)

去除 str 的拖尾空格,傳回新字元串。示例如下:

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

SOUNDEX(str)

一種能夠生成判斷字元串是否同音的soundex 字元串的函數。傳回 str 的 soundex 字元串。聽起來相似的兩個字元串應該具有相同的soundex 字元串。标準的soundex 字元串包含4個字元,但 MySQL 的 SOUNDEX() 函數傳回的是任意長度的字元串。可以在結果上使用 SUBSTRING() 來擷取标準的 soundex 字元串。str 中的非字母字元自動會被忽略。所有在 A-Z 範圍之外的國際字母字元會被認為是元音字母。示例如下:

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

expr1 SOUNDS LIKE expr2

作用等同于 SOUNDEX(expr1) = SOUNDEX(expr2)。

SPACE(N)

傳回包含 N 個空格的字元串。示例如下:

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

STRCMP(str1, str2)

對比兩個字元串 str1 和 str2,如果兩字元串相等,傳回1;如果目前的排序規則,str1 小于 str2,則傳回-1,反之則都傳回1。第1個示例如下:

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

第2個示例如下:

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

第3個示例如下:

mysql> 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 pos FOR len)

在以上4種函數變種形式中,沒有 len 參數的函數形式會傳回自 str 中位置 pos 處之後的子字元串;有 len 參數的函數形式會傳回自 str 中位置 pos 處之後,長度為 len 的子字元串。使用 FROM 的函數形式則是采用的标準的 SQL 文法。pos 參數也可能取負值,在這種情況下,取字元串的方式是從字元串 str 的末尾向前(而非從前往後),從這種逆向順序的 pos 處開始取字元串。另外,負值的 pos 參數可用于任何形式的 SUBSTRING() 函數中。示例如下:

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

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

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

SUBSTRING_INDEX(str,delim,count)

傳回 str 中第 count 次出現的分隔符 delim 之前的子字元串。如果 count 為正數,将最後一個分隔符左邊(因為是從左數分隔符)的所有内容作為子字元串傳回;如果 count 為負值,傳回最後一個分隔符右邊(因為是從右數分隔符)的所有内容作為子字元串傳回。在尋找分隔符時,函數對大小寫是敏感的。示例如下:

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

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) 與 TRIM([remstr FROM] str)

将字元串 str去除 remstr 所指定的字首或字尾,傳回結果字元串。如果沒有指定辨別符BOTH、LEADING,或TRAILING,則預設采用 BOTH,即将前字尾都删除。remstr 其實是個可選參數,如果沒有指定它,則删除的是空格。示例如下:

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

mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
+---------------------------------------------------------+
| TRIM(LEADING 'x' FROM 'xxxbarxxx')                      |
+---------------------------------------------------------+
| barxxx                                                  |
+---------------------------------------------------------+
1 row in set (0.00 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)
           

UCASE(str)

作用等同于 UPPER()。

UNHEX(str)

它是HEX(str) 的逆向函數。将參數中的每一對16進制數字都轉換為10進制數字,然後再轉換成 ASCII 碼所對應的字元。結果傳回的字元是二進制字元串。

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

參數 X 中的字元必須是合法的16進制數字:0-9,A-F或者a-f(因為16進制不區分字母的大小寫)。如果參數 X 中包含非16進制數字,則函數傳回 NULL。

UPPER(str)

根據目前所采用的字元集映射關系,将 str 所有字元都轉為大寫,并傳回新字元串。示例如下:

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

本文為轉載分享,不涉及任何商業利益,如有侵權,請聯系背景删除!!

往期推薦

史上最全的SQL知識點彙總,錯過這次在等一年

SQL知識大全(一):資料庫的語言分類你都知道嗎?

SQL知識大全(二):SQL的基礎知識你都掌握了嗎?

SQL知識大全三):SQL中的字元串處理和條件查詢

SQL知識大全(四):SQL中的資料表關聯

分享資料知識,成就資料理想