點選上方藍字關注我們
本文轉載自極客學院,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中的資料表關聯
分享資料知識,成就資料理想