| 函數(shù)名稱 | 函數(shù)功能說明 |
|---|---|
ASCII() |
返回字符串 str 中最左邊字符的 ASCII 代碼值 |
BIN() |
返回十進(jìn)制數(shù)值 N 的二進(jìn)制數(shù)值的字符串表現(xiàn)形式 |
BIT_LENGTH() |
返回字符串 str 所占的位長度 |
CHAR() |
返回每一個(gè)傳入的整數(shù)所對應(yīng)的字符 |
CHAR_LENGTH() |
單純返回 str 的字符串長度 |
CHARACTER_LENGTH() |
作用等同于CHAR_LENGTH() |
CONCAT_WS() |
返回串聯(lián)并以某種分隔符進(jìn)行分隔的字符串 |
CONCAT() |
返回串聯(lián)的字符串 |
CONV() |
轉(zhuǎn)換數(shù)值的進(jìn)制 |
ELT() |
返回一定索引處的字符串 |
EXPORT_SET() |
返回一個(gè)字符串,其中,對于每個(gè)設(shè)置在bits中的位,得到一個(gè)on字符串,而對于每個(gè)未設(shè)定的位,則得到一個(gè)off字符串。 |
FIELD() |
返回第一個(gè)參數(shù)在隨后參數(shù)中的索引(下文中有時(shí)也稱其為位置) |
FIND_IN_SET() |
返回第一個(gè)參數(shù)在第二個(gè)參數(shù)中的索引 |
FORMAT() |
將數(shù)值參數(shù)進(jìn)行一些格式化,并保留指定的小數(shù)位數(shù) |
HEX() |
返回參數(shù)的16進(jìn)制數(shù)的字符串形式 |
INSERT() |
在字符串的指定位置處,將指定數(shù)目的字符串替換為新字符串 |
INSTR() |
返回子字符串第一次出現(xiàn)的索引 |
LCASE() |
等同于 LOWER() |
LEFT() |
按指定規(guī)則,返回字符串中最左方的一定數(shù)目的字符 |
LENGTH() |
返回字符串的字節(jié)長度 |
LOAD_FILE() |
加載指定名稱的文件 |
LOCATE() |
返回子字符串第一次出現(xiàn)的位置 |
LOWER() |
返回小寫的參數(shù) |
LPAD() |
返回字符串參數(shù),其左側(cè)由指定字符串補(bǔ)齊指定數(shù)目 |
LTRIM() |
去除前導(dǎo)空格 |
MAKE_SET() |
返回一個(gè)由逗號分隔的字符串集,其中每個(gè)字符串都擁有bits 集中相對應(yīng)的二進(jìn)制位 |
MID() |
從指定位置返回子字符串 |
OCT() |
將參數(shù)轉(zhuǎn)變成八進(jìn)制數(shù),返回這個(gè)八進(jìn)制數(shù)的字符串形式 |
OCTET_LENGTH() |
等同于 LENGTH() |
ORD() |
如果參數(shù)中最左方的字符是個(gè)多字節(jié)字符,則返回該字符的ASCII代碼值 |
POSITION() |
等同于 LOCATE() |
QUOTE() |
對參數(shù)進(jìn)行轉(zhuǎn)義,以便用于 SQL 語句 |
REGEXP |
使用正則表達(dá)式進(jìn)行模式匹配 |
REPEAT() |
按指定次數(shù)重復(fù)字符串 |
REPLACE() |
查找更換指定的字符串 |
REVERSE() |
反轉(zhuǎn)字符串參數(shù)中的字符 |
RIGHT() |
返回字符串參數(shù)最右邊指定位數(shù)的字符 |
RPAD() |
將字符串按指定次數(shù)重復(fù)累加起來 |
RTRIM() |
除去字符串參數(shù)的拖尾空格 |
SOUNDEX() |
返回一個(gè)soundex字符串 |
SOUNDS LIKE |
對比聲音 |
SPACE() |
返回指定空格數(shù)目的字符串 |
STRCMP() |
對比兩個(gè)字符串 |
SUBSTRING_INDEX() |
將字符串參數(shù)中在指定序號的分隔符之前的子字符串予以返回 |
SUBSTRING() 與 SUBSTR() |
按指定規(guī)則返回子字符串 |
TRIM() |
清除字符串參數(shù)的前導(dǎo)及拖尾空格 |
UCASE() |
等同于 UPPER() |
UNHEX() |
將16進(jìn)制數(shù)的每一位都轉(zhuǎn)變?yōu)锳SCII字符 |
UPPER() |
將參數(shù)全轉(zhuǎn)變?yōu)榇髮?/td> |
返回字符串 str 中最左邊字符的 ASCII 代碼值。如果該字符串為空字符串,則返回0。如果字符串為 NULL 則返回 NULL。因?yàn)锳SCII碼表能表示的字符為256個(gè),所以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)
返回十進(jìn)制數(shù)值 N 的二進(jìn)制數(shù)值的字符串表現(xiàn)形式。其中,N 是一 BIGINT 型數(shù)值。該函數(shù)等同于 CONV(N, 10, 2)。如果 N 為 NULL,則返回 NULL。示例如下:
mysql> SELECT BIN(12);
+---------------------------------------------------------+
| BIN(12) |
+---------------------------------------------------------+
| 1100 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
返回字符串 str 所占的位長度。示例如下:
mysql> SELECT BIT_LENGTH('text');
+---------------------------------------------------------+
| BIT_LENGTH('text') |
+---------------------------------------------------------+
| 32 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
會(huì)將每一個(gè)參數(shù) N 都解釋為整數(shù),返回由這些整數(shù)在 ASCII 碼中所對應(yīng)字符所組成的字符串。忽略 NULL 值。示例如下:
mysql> SELECT CHAR(77,121,83,81,'76');
+---------------------------------------------------------+
| CHAR(77,121,83,81,'76') |
+---------------------------------------------------------+
| MySQL |
+---------------------------------------------------------+
1 row in set (0.00 sec)
單純返回 str 的字符串長度(字符串中到底有幾個(gè)字符)。多字節(jié)字符會(huì)被當(dāng)成單字符對待,所以如果一個(gè)字符串包含5個(gè)雙字節(jié)字符,LENGTH() 返回10,而 CHAR_LENGTH() 會(huì)返回5。示例如下:
mysql> SELECT CHAR_LENGTH("text");
+---------------------------------------------------------+
| CHAR_LENGTH("text") |
+---------------------------------------------------------+
| 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
與函數(shù) CHAR_LENGTH() 作用相同。
將一眾字符串參數(shù)加以連接,返回結(jié)果字符串??赡苡?或多個(gè)參數(shù)。如果參數(shù)中都是非二進(jìn)制字符串,結(jié)果也是非二進(jìn)制字符串。如果參數(shù)包含任何二進(jìn)制字符串,結(jié)果也是二進(jìn)制字符串。數(shù)值型參數(shù)會(huì)被轉(zhuǎn)化成相應(yīng)的二進(jìn)制字符串形式。如果想避免這樣,可以使用顯式的類型轉(zhuǎn)換,如下例所示:
mysql> SELECT CONCAT('My', 'S', 'QL');
+---------------------------------------------------------+
| CONCAT('My', 'S', 'QL') |
+---------------------------------------------------------+
| MySQL |
+---------------------------------------------------------+
1 row in set (0.00 sec)
一種特殊的 CONCAT 函數(shù)。利用分隔符 separator 參數(shù)來連接后續(xù)的參數(shù) str1、str2……分隔符添加在后續(xù)參數(shù)之間,與后續(xù)參數(shù)一樣,它也可以是一個(gè)字符串。如果該分隔符參數(shù)為 NULL,則結(jié)果也是 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)
將數(shù)值在不同進(jìn)制間轉(zhuǎn)換。將數(shù)值型參數(shù) N 由初始進(jìn)制 from_base 轉(zhuǎn)換為目標(biāo)進(jìn)制 to_base 的形式并返回。如果任何參數(shù)為 NULL,則返回 NULL。N 可以是整數(shù),但也可以是字符串。進(jìn)制取值范圍為2-36。如果 to_base 為負(fù)值,N 被認(rèn)為是有符號數(shù)值;反之,N被認(rèn)為是無符號數(shù)值。函數(shù)運(yùn)算精度為64位。示例如下:
mysql> SELECT CONV('a',16,2);
+---------------------------------------------------------+
| CONV('a',16,2) |
+---------------------------------------------------------+
| 1010 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
如果 N = 1,則返回 str1,如果N = 2 則返回 str2,以此類推。如果 N 小于1或大于參數(shù)個(gè)數(shù),則返回 NULL。ELT() 是 FIELD() 的功能補(bǔ)充函數(shù)。示例如下:
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
+---------------------------------------------------------+
| ELT(1, 'ej', 'Heja', 'hej', 'foo') |
+---------------------------------------------------------+
| ej |
+---------------------------------------------------------+
1 row in set (0.00 sec)
對于 bits 中的每一位,都能得到一個(gè)on 字符串,對于未在bits中的每個(gè)比特,則得到off字符串。bits 中的比特從右向左(從低位到高位比特)排列,而字符串則是按照從左至右的順序添加到結(jié)果上,并由 separator 字符串分隔(默認(rèn)采用逗號 ,)。bits 中的位數(shù)由 number_of_bits 提供,如果不指定,則默認(rèn)為64。如果大于64,則會(huì)自動(dòng)截取為64,它是一個(gè)無符號整形值,因此上-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)
返回 str 在后面的參數(shù)列(str1、str2、str3……)中的索引(起始索引為1)。如果未在參數(shù)列中發(fā)現(xiàn) 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)
如果字符串 str 在由 N 個(gè)子字符串組成的字符串列表 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)
將數(shù)值參數(shù) X 以'#,###,###.##' 的形式進(jìn)行格式化,并四舍五入到小數(shù)點(diǎn)后 D 位處,然后將格式化結(jié)果以字符串形式返回。如果 D 為0,則結(jié)果沒有小數(shù)部分。示例如下:
mysql> SELECT FORMAT(12332.123456, 4);
+---------------------------------------------------------+
| FORMAT(12332.123456, 4) |
+---------------------------------------------------------+
| 12,332.1235 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
當(dāng) N_or_S 為數(shù)值時(shí),以16進(jìn)制數(shù)的字符串形式返回 N 的值,N 為 BIGINT 型值。該函數(shù)作用等同于 CONV(N, 10, 16)。
當(dāng) N_or_S 為字符串時(shí),返回 N_or_S 的16進(jìn)制字符串形式,N_or_S 中的每個(gè)字符都被轉(zhuǎn)換為2個(gè)16進(jìn)制數(shù)字。示例如下:
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)
在原始字符串 str 中,將自左數(shù)第 pos 位開始,長度為 len 個(gè)字符的字符串替換為新字符串 newstr,然后返回經(jīng)過替換后的字符串。如果 pos 未在原始字符串長度內(nèi),則返回原始字符串。如果 len 不在原始字符串長度內(nèi),則返回原始字符串中自 pos 位起后面剩余的字符串。如果函數(shù)中任一參數(shù)為 NULL,則返回 NULL。示例如下:
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
+---------------------------------------------------------+
| INSERT('Quadratic', 3, 4, 'What') |
+---------------------------------------------------------+
| QuWhattic |
+---------------------------------------------------------+
1 row in set (0.00 sec)
返回 substr 在 str 中第一次出現(xiàn)時(shí)的位置(也就是索引)。作用類似于雙參數(shù)版本的 LOCATE() 函數(shù),只不過參數(shù)的次序調(diào)換了過來。示例如下:
mysql> SELECT INSTR('foobarbar', 'bar');
+---------------------------------------------------------+
| INSTR('foobarbar', 'bar') |
+---------------------------------------------------------+
| 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
等同于 LOWER()。
返回字符串 str 自左數(shù)的 len 個(gè)字符。如果任一參數(shù)為 NULL,則返回 NULL。示例如下:
mysql> SELECT LEFT('foobarbar', 5);
+---------------------------------------------------------+
| LEFT('foobarbar', 5) |
+---------------------------------------------------------+
| fooba |
+---------------------------------------------------------+
1 row in set (0.00 sec)
返回字符串 str 的字節(jié)長度。多字節(jié)字符被如實(shí)計(jì)算為多字節(jié)。所以,對于包含5個(gè)雙字節(jié)字符(如中文字符)的字符串,LENGTH() 返回10,而 CHAR_LENGTH() 返回5。示例如下:
mysql> SELECT LENGTH('text');
+---------------------------------------------------------+
| LENGTH('text') |
+---------------------------------------------------------+
| 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
讀取文件并以字符串形式返回文件內(nèi)容。使用該函數(shù)時(shí),文件必須位于服務(wù)器主機(jī)中,且必須制定該文件的完整路徑名。必須擁有 FILE 權(quán)限。文件對于所有人都必須是可讀狀態(tài),而且文件尺寸也必須小于 max_allowed_packet 字節(jié)。
如果因?yàn)槲礉M足上述幾個(gè)條件,從而文件不存在于服務(wù)器主機(jī)中,或者不可讀,則函數(shù)返回 NULL。
自 MySQL 5.0.19 起,character_set_filesystem 系統(tǒng)變量負(fù)責(zé)對字符串形式文件名加以解讀。 示例如下:
mysql> UPDATE table_test
-> SET blob_col=LOAD_FILE('/tmp/picture')
-> WHERE id=1;
...........................................................
第一種格式函數(shù)的作用如下:返回 substr 在 str 中第一次出現(xiàn)的位置(即索引)。第二種格式函數(shù)則返回自 str 指定位置 pos (即索引)起, substr 在 str 中第一次出現(xiàn)的位置。如果在 str 中未找到 substr,則兩種函數(shù)都返回0。示例如下:
mysql> SELECT LOCATE('bar', 'foobarbar');
+---------------------------------------------------------+
| LOCATE('bar', 'foobarbar') |
+---------------------------------------------------------+
| 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
根據(jù)當(dāng)前所采用的字符集映射關(guān)系,將 str 所有字符都轉(zhuǎn)為小寫,并返回新字符串。示例如下:
mysql> SELECT LOWER('QUADRATICALLY');
+---------------------------------------------------------+
| LOWER('QUADRATICALLY') |
+---------------------------------------------------------+
| quadratically |
+---------------------------------------------------------+
1 row in set (0.00 sec)
左補(bǔ)齊函數(shù)。將字符串 str 左側(cè)利用字符串 padstr 補(bǔ)齊為整體長度為 len 的字符串。如果 str 大于 len,則返回值會(huì)縮減到 len 個(gè)字符。示例如下:
mysql> SELECT LPAD('hi',4,'??');
+---------------------------------------------------------+
| LPAD('hi',4,'??') |
+---------------------------------------------------------+
| ??hi |
+---------------------------------------------------------+
1 row in set (0.00 sec)
將字符串 str 中前部的空格字符去除,然后返回新的 str 字符串。示例如下:
mysql> SELECT LTRIM(' barbar');
+---------------------------------------------------------+
| LTRIM(' barbar') |
+---------------------------------------------------------+
| barbar |
+---------------------------------------------------------+
1 row in set (0.00 sec)
返回一個(gè)集合值(是一個(gè)由字符 , 所分隔的眾多子字符串所組合而成的字符串),該集合中包含的字符串的比特?cái)?shù)等于bits 集合中的對應(yīng)比特?cái)?shù)。例如,str1 對應(yīng)著 bit 0,str2 對應(yīng) bit 1,以此類推。str1、str2……中的 NULL 值將不會(huì)添加到結(jié)果中。示例如下:
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) 作用等同于 SUBSTRING(str,pos,len)。
以字符串形式返回 N 的八進(jìn)制數(shù),N 是一個(gè)BIGINT 型數(shù)值。作用相當(dāng)于CONV(N,10,8)。如果 N 為 NULL,則返回 NULL。示例如下:
mysql> SELECT OCT(12);
+---------------------------------------------------------+
| OCT(12) |
+---------------------------------------------------------+
| 14 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
OCTET_LENGTH() 作用等同于 LENGTH()。
如果 str 最左邊的字符是一個(gè)多字節(jié)字符,利用以下公式計(jì)算返回該字符的 ASCII 代碼值。
(第一個(gè)字節(jié)的 ASCII 代碼)
+ (第1個(gè)字節(jié)的 ASCII 代碼 × 256)
+ (第3個(gè)字節(jié)的 ASCII 代碼 × 2562)……
如果最左邊的字符不是多字節(jié)字符,則函數(shù)按照 ASCII() 方式返回值。示例如下:
mysql> SELECT ORD('2');
+---------------------------------------------------------+
| ORD('2') |
+---------------------------------------------------------+
| 50 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
作用等同于 LOCATE(substr,str)。
產(chǎn)生一個(gè)在SQL語句中可用作正確轉(zhuǎn)義數(shù)據(jù)值的結(jié)果。將 str 中的每一個(gè)單引號(')、反轉(zhuǎn)杠(\)、 ASCII的NUL值,以及Control+Z組合前加上反斜杠,最后再補(bǔ)足左右閉合用的單引號。如果參數(shù)為 NULL,則返回 NULL 的字符串形式(不用單引號閉合),示例如下:
mysql> SELECT QUOTE('Don\'t!');
+---------------------------------------------------------+
| QUOTE('Don\'t!') |
+---------------------------------------------------------+
| 'Don\'t!' |
+---------------------------------------------------------+
1 row in set (0.00 sec)
注意:檢查一下,如果安裝的 MySQL 不支持這個(gè)函數(shù),則不要使用。
將 expr 與 pattern 進(jìn)行模式匹配。如果相匹配則返回1,否則返回0。如果 expr 與 pattern 兩個(gè)參數(shù)中有一個(gè)為 NULL,則結(jié)果也為 NULL。除了在處理二進(jìn)制字符串時(shí),REGEXP 對大小寫并不敏感。第1個(gè)示例如下:
mysql> SELECT 'ABCDEF' REGEXP 'A%C%%';
+---------------------------------------------------------+
| 'ABCDEF' REGEXP 'A%C%%' |
+---------------------------------------------------------+
| 0 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
第2個(gè)實(shí)例:
mysql> SELECT 'ABCDE' REGEXP '.*';
+---------------------------------------------------------+
| 'ABCDE' REGEXP '.*' |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
第3個(gè)示例:
mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+---------------------------------------------------------+
| 'new*\n*line' REGEXP 'new\\*.\\*line' |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
將字符串 str 重復(fù) count 次,返回結(jié)果字符串。如果 count 小于1,則返回一個(gè)空字符串。如果 str 或 count 為 NULL,則返回 NULL。示例如下:
mysql> SELECT REPEAT('MySQL', 3);
+---------------------------------------------------------+
| REPEAT('MySQL', 3) |
+---------------------------------------------------------+
| MySQLMySQLMySQL |
+---------------------------------------------------------+
1 row in set (0.00 sec)
查找字符串 str 中出現(xiàn)的 from_str ,將其都更換為 to_str。在查找 from_str 時(shí),函數(shù)對大小寫是敏感的。示例如下:
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
+---------------------------------------------------------+
| REPLACE('www.mysql.com', 'w', 'Ww') |
+---------------------------------------------------------+
| WwWwWw.mysql.com |
+---------------------------------------------------------+
1 row in set (0.00 sec)
以反向順序返回 str 所有字符。示例如下:
mysql> SELECT REVERSE('abcd');
+---------------------------------------------------------+
| REVERSE('abcd') |
+---------------------------------------------------------+
| dcba |
+---------------------------------------------------------+
1 row in set (0.00 sec)
返回 str 右邊末 len 位的字符。如果有的參數(shù)是 NULL 值,則返回 NULL。
mysql> SELECT RIGHT('foobarbar', 4);
+---------------------------------------------------------+
| RIGHT('foobarbar', 4) |
+---------------------------------------------------------+
| rbar |
+---------------------------------------------------------+
1 row in set (0.00 sec)
在 str 右方補(bǔ)齊 len 位的字符串 padstr,返回新字符串。如果 str 長度大于 len,則返回值的長度將縮減到 len 所指定的長度。示例如下:
mysql> SELECT RPAD('hi',5,'?');
+---------------------------------------------------------+
| RPAD('hi',5,'?') |
+---------------------------------------------------------+
| hi??? |
+---------------------------------------------------------+
1 row in set (0.00 sec)
去除 str 的拖尾空格,返回新字符串。示例如下:
mysql> SELECT RTRIM('barbar ');
+---------------------------------------------------------+
| RTRIM('barbar ') |
+---------------------------------------------------------+
| barbar |
+---------------------------------------------------------+
1 row in set (0.00 sec)
一種能夠生成判斷字符串是否同音的soundex 字符串的函數(shù)。返回 str 的 soundex 字符串。聽起來相似的兩個(gè)字符串應(yīng)該具有相同的soundex 字符串。標(biāo)準(zhǔn)的soundex 字符串包含4個(gè)字符,但 MySQL 的 SOUNDEX() 函數(shù)返回的是任意長度的字符串??梢栽诮Y(jié)果上使用 SUBSTRING() 來獲取標(biāo)準(zhǔn)的 soundex 字符串。str 中的非字母字符自動(dòng)會(huì)被忽略。所有在 A-Z 范圍之外的國際字母字符會(huì)被認(rèn)為是元音字母。示例如下:
mysql> SELECT SOUNDEX('Hello');
+---------------------------------------------------------+
| SOUNDEX('Hello') |
+---------------------------------------------------------+
| H400 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
作用等同于 SOUNDEX(expr1) = SOUNDEX(expr2)。
返回包含 N 個(gè)空格的字符串。示例如下:
mysql> SELECT SPACE(6);
+---------------------------------------------------------+
| SELECT SPACE(6) |
+---------------------------------------------------------+
| ' ' |
+---------------------------------------------------------+
1 row in set (0.00 sec)
對比兩個(gè)字符串 str1 和 str2,如果兩字符串相等,返回1;如果當(dāng)前的排序規(guī)則,str1 小于 str2,則返回-1,反之則都返回1。第1個(gè)示例如下:
mysql> SELECT STRCMP('MOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'MOHD') |
+---------------------------------------------------------+
| 0 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
第2個(gè)示例如下:
mysql> SELECT STRCMP('AMOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('AMOHD', 'MOHD') |
+---------------------------------------------------------+
| -1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
第3個(gè)示例如下:
mysql> SELECT STRCMP('MOHD', 'AMOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'AMOHD') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
在以上4種函數(shù)變種形式中,沒有 len 參數(shù)的函數(shù)形式會(huì)返回自 str 中位置 pos 處之后的子字符串;有 len 參數(shù)的函數(shù)形式會(huì)返回自 str 中位置 pos 處之后,長度為 len 的子字符串。使用 FROM 的函數(shù)形式則是采用的標(biāo)準(zhǔn)的 SQL 語法。pos 參數(shù)也可能取負(fù)值,在這種情況下,取字符串的方式是從字符串 str 的末尾向前(而非從前往后),從這種逆向順序的 pos 處開始取字符串。另外,負(fù)值的 pos 參數(shù)可用于任何形式的 SUBSTRING() 函數(shù)中。示例如下:
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) |
+------------