国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MYSQL字符串函數(shù)詳解和實(shí)戰(zhàn)(字符串函數(shù)大全,內(nèi)含示例)

這篇具有很好參考價(jià)值的文章主要介紹了MYSQL字符串函數(shù)詳解和實(shí)戰(zhàn)(字符串函數(shù)大全,內(nèi)含示例)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

MySQL提供了許多字符串函數(shù),用于處理和操作字符串?dāng)?shù)據(jù)。以下是一些常用的MYSQL字符串函數(shù)。

建議收藏以備后續(xù)用到查閱參考。

目錄

一、CONCAT 拼接字符串

二、CONCAT_WS 拼接字符串

三、SUBSTR 取子字符串

四、SUBSTRING 取子字符串

五、SUBSTRING_INDEX?取子字符串

六、REPLACE 替換子字符串

七、UPPER 字母轉(zhuǎn)大寫

八、LENGTH 取以字節(jié)為單位的長(zhǎng)度

九、TRIM 刪除字符串頭部和尾部空格

十、RTRIM 刪除尾部空格

十一、LTRIM 刪除前導(dǎo)空格

十二、REVERSE?反轉(zhuǎn)后字符串

十三、ASCII?轉(zhuǎn)為ASCII 值

十四、BIN 轉(zhuǎn)為二進(jìn)制

十五、BIT_LENGTH 取位為單位的長(zhǎng)度

十六、CHAR 轉(zhuǎn)為字符

十七、CHAR_LENGTH 轉(zhuǎn)為字符后的長(zhǎng)度

十八、CHARACTER_LENGTH?轉(zhuǎn)為字符后的長(zhǎng)度

十九、ELT 指定參數(shù)返回

二十、EXPORT_SET 指定分隔符拼接字符串

二十一、FIELD 取值在列表中的索引

二十二、FIND_IN_SET 分隔串中找字符串

二十三、FORMAT 數(shù)字格式化為字符串

二十四、FROM_BASE64 解碼BASE64編碼的字符串

二十五、HEX 取參數(shù)的十六進(jìn)制值的字符串表示

二十六、INSERT?字符串中插入一個(gè)新的字符串

二十七、INSTR 查找子串在目標(biāo)串出現(xiàn)的第一個(gè)位置

二十八、LCASE 轉(zhuǎn)為小寫

二十九、LOWER 轉(zhuǎn)為小寫

三十、LEFT 取左子串字符串

三十一、RIGHT?取右子串字符串

三十二、LOCATE 查找第一個(gè)子串的位置

三十三、LPAD?左側(cè)填充指定的字符串使其達(dá)到指定的長(zhǎng)度

三十四、RPAD?右側(cè)填充指定的字符串使其達(dá)到指定的長(zhǎng)度

三十五、MAKE_SET 按參數(shù)1的二進(jìn)制位反轉(zhuǎn)返回對(duì)應(yīng)位置參數(shù)以逗號(hào)分隔集合

三十六、MID 取指定位置指定長(zhǎng)度的子字符串

三十七、OCT 數(shù)字轉(zhuǎn)八進(jìn)制

三十八、OCTET_LENGTH 取以字節(jié)為單位的長(zhǎng)度

三十九、ORD 取第一個(gè)字符的ASCII碼

四十、POSITION?查找子串在目標(biāo)串出現(xiàn)的第一個(gè)位置

四十一、QUOTE?用單引號(hào)包圍字符串

四十二、REPEAT?字符串重復(fù)指定的次數(shù)

四十三、SOUNDEX 取發(fā)音的 soundex 字符串

四十四、SPACE 取指定數(shù)量空格字符串

四十五、STRCMP?比較兩個(gè)字符串

四十六、TO_BASE64 以base-64編碼字符串

四十七、UCASE?字符串轉(zhuǎn)為大寫

四十八、UNHEX?十六進(jìn)制數(shù)值的字符串轉(zhuǎn)換為字節(jié)


一、CONCAT 拼接字符串

MySQL CONCAT()?函數(shù)用來(lái)按順序拼接指定的 2 個(gè)或多個(gè)字符串,并返回拼接后的字符串。如果您需要使用分隔符連接多個(gè)字符串,請(qǐng)使用 CONCAT_WS()?函數(shù)。如果拼接的參數(shù)中一個(gè)為?NULL, 則返回?NULL。

語(yǔ)法:

CONCAT(string1, string2, ..., stringN)

參數(shù)說(shuō)明:

  • string1, string2, ..., stringN 必需的,至少應(yīng)指定一個(gè)字符串;拼接中若有一個(gè)為?NULL, 則返回?NULL

返回值:

  • 返回拼接后的字符串。
  • 只有一個(gè)參數(shù),返回參數(shù)本身。
  • 若有一個(gè)參數(shù)為NULL,返回NULL。
  • 無(wú)參數(shù)時(shí)報(bào)錯(cuò):ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CONCAT'。

示例:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-751627.html

SELECT CONCAT('Hello', 'World'); // HelloWorld
SELECT CONCAT('Hello', NULL);    // NULl

二、CONCAT_WS 拼接字符串

MySQL?CONCAT_WS()?函數(shù)用來(lái)通過指定的分隔符按順序拼接指定的 2 個(gè)或多個(gè)字符串,并返回拼接后的字符串。

忽略String1,String2... 中的NULL值。

語(yǔ)法:

CONCAT_WS(separator, string1, string2, ..., stringN)

參數(shù)說(shuō)明:

  • separator:分隔符,必須的。您可以使用單個(gè)字符,也可以使用字符串。

  • string1, string2, ..., stringN:必需的,至少應(yīng)指定一個(gè)字符串;如果拼接的參數(shù)為?NULL, 則會(huì)被忽略;當(dāng)不指定字符串時(shí),MySQL 將會(huì)報(bào)錯(cuò):?ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CONCAT_WS'

返回值:

  • 分隔符連接后的多個(gè)字符串。
  • 返回?NULL情況:separator?為?NULL。

示例:

SELECT 
    CONCAT_WS('-', 'Hello', 'World'),       // Hello-World
    CONCAT_WS('-', 'Hello', NULL, 'World'), // Hello-World
    SELECT CONCAT_WS('-', 'Hello');         // Hello

三、SUBSTR 取子字符串

MYSQL SUBSTR()函數(shù)是?SUBSTRING() 函數(shù)的別名。

四、SUBSTRING 取子字符串

MySQL SUBSTRING() 函數(shù)從一個(gè)字符串中返回一個(gè)從指定位置開始的指定長(zhǎng)度的子字符串。 SUBSTR() 等同于 SUBSTRING() 函數(shù)。

語(yǔ)法:

有4種形式:
SUBSTRING(str, pos)
SUBSTRING(str FROM pos)
SUBSTRING(str, pos, len)
SUBSTRING(str FROM pos FOR len)

參數(shù)說(shuō)明:

  • str:必需的,從中提取子字符串的原字符串。
  • pos:必需的,開始提取的位置。它可以是正數(shù)或者負(fù)數(shù)。如果是正數(shù),則從字符串的開頭為起始位置確定開始提取的位置提取子字符串。如果是負(fù)數(shù),則從字符串的結(jié)尾為起始位置確定開始提取的位置提取子字符串。
  • len:可選的。子字符串的長(zhǎng)度(字符數(shù))。如果不指定,則提取到原字符串的結(jié)尾。

返回值:

  • 當(dāng)?pos?為?0?或者超過原字符串的長(zhǎng)度時(shí),?返回空串?''。
  • 當(dāng)?pos?為負(fù)數(shù)時(shí),從字符串尾部向前計(jì)數(shù)。
  • 當(dāng)?pos + len?超過原字符串的長(zhǎng)度時(shí),從pos位置提取到原字符串的結(jié)尾。
  • 當(dāng)參數(shù)為?NULL?時(shí),?返回?NULL。

示例:

SELECT
    SUBSTRING('Hello', 1, 2),	       // He 
    SUBSTRING('Hello', 1),	           // Hello 
    SUBSTRING('Hello', -2, 2),         // lo 
    SUBSTRING('Hello' FROM 2 FOR 2)    // el 

五、SUBSTRING_INDEX?取子字符串

MySQL?SUBSTRING_INDEX()?函數(shù)返回一個(gè)字符串中指定分隔符出現(xiàn)在指定次數(shù)之前的子字符串。

語(yǔ)法:

SUBSTRING_INDEX(str, delim, count)

參數(shù)說(shuō)明:

  • str:必需的。原字符串。

  • delim:必需的。在原字符串中搜索的分隔符。

  • count:必需的。分隔符出現(xiàn)的次數(shù)。如果?count?為負(fù)數(shù),則從字符串尾部向前開始計(jì)數(shù)分隔符,返回分隔符之后的子字符串。

返回值:

  • 從左往右數(shù):count為正數(shù),返回一個(gè)字符串中指定分隔符出現(xiàn)在指定次數(shù)之前的子字符串。
  • 從右往左數(shù):count為負(fù)數(shù),返回一個(gè)字符串中指定分隔符出現(xiàn)在指定次數(shù)之前的子字符串。
  • 返回空情況:count為0。
  • 返回?NULL情況:任意一個(gè)參數(shù)為?NULL。

示例:

SELECT
    SUBSTRING_INDEX('www.baidu.com', '.', 2), // www.baidu
    SUBSTRING_INDEX('www.baidu.com', '.', -2), // baidu.com
    SUBSTRING_INDEX('www.baidu.com', '.', 0) // 

六、REPLACE 替換子字符串

MySQL REPLACE() 函數(shù)將字符串中出現(xiàn)的所有子字符串替換為新的子字符串。 REPLACE() 函數(shù)是基于字符的替換,并且替換字符串時(shí)是區(qū)分大小寫的。

語(yǔ)法:

REPLACE(str, from_str, to_str)

參數(shù)說(shuō)明:

  • str:必需的,原字符串。
  • from_str:必需的,被替換的子字符串。
  • to_str:必需的,用來(lái)替換的新子字符串。

返回值:

  • 返回?str?中的所有?from_str?被?to_str?替換后的字符串。
  • 當(dāng)任意一個(gè)參數(shù)為?NULL?時(shí),?REPLACE()?函數(shù)將返回?NULL。

示例:

SELECT
    REPLACE('Hello World', 'World', 'Alice'), // Hello Alice
    REPLACE('Hello World', 'l', 'L'),		  // HeLLo WorLd
    REPLACE('hello World', 'h', 'HH')		  // HHello World

七、UPPER 字母轉(zhuǎn)大寫

MySQL UPPER() 函數(shù)將指定字符串轉(zhuǎn)為大寫并返回。 UCASE() 函數(shù)是 UPPER() 函數(shù)的別名。

如果想將字符串轉(zhuǎn)換為小寫,請(qǐng)使用 LCASE() 或者 LOWER() 函數(shù)。

語(yǔ)法:

UPPER(str)

參數(shù)說(shuō)明:

  • str:必需的。 被處理的字符串。

返回值:

  • 定字符串的大寫形式。
  • 當(dāng)參數(shù)?str?為?NULL?時(shí),?UPPER()?函數(shù)將返回?NULL

示例:

SELECT UPPER(name)
FROM film
LIMIT 3;

+-------+
|FILM0  |
+-------+
|FILM1  |
+-------+
|FILM2  |
+-------+

八、LENGTH 取以字節(jié)為單位的長(zhǎng)度

MySQL LENGTH() 函數(shù)返回指定字符串的以字節(jié)為單位的長(zhǎng)度。如果想返回字符的數(shù)量,請(qǐng)使用 CHAR_LENGTH() 函數(shù)或者 CHARACTER_LENGTH() 函數(shù)。

LENGTH() 函數(shù)與 OCTET_LENGTH() 函數(shù)相同。

語(yǔ)法:

LENGTH(string)

參數(shù)說(shuō)明:

  • string:必需的。需要計(jì)算長(zhǎng)度的字符串。參數(shù)可以是其他的類型,比如數(shù)字或者日期等,LENGTH() 函數(shù)會(huì)首先將其轉(zhuǎn)為字符串再計(jì)算長(zhǎng)度。

返回值:

  • 返回指定字符串的以字節(jié)為單位的長(zhǎng)度,即字節(jié)的數(shù)量。
  • 當(dāng)參數(shù)為?NULL?時(shí),?返回?NULL。

示例:

SELECT
    LENGTH('Hello'),     // 5
    LENGTH(''),          // 0
    LENGTH(20),          // 2
    LENGTH(-20),         // 3
    LENGTH(+20),         // 2
    LENGTH(NOW()),       // 19
    LENGTH(CURDATE()),   // 10
    LENGTH('你好'),       // 6
    LENGTH(NULL)         // NULL

九、TRIM 刪除字符串頭部和尾部空格

MySQL TRIM() 函數(shù)從指定字符串的開頭和結(jié)尾刪除由指定字符組成的最長(zhǎng)字符串。如果只想刪除字符串的前導(dǎo)空格,請(qǐng)使用 LTRIM() 函數(shù);如果只想刪除字符串的尾隨空格,請(qǐng)使用 RTRIM() 函數(shù)。

語(yǔ)法:

TRIM(str)
TRIM(remove_str FROM str)
TRIM({BOTH | LEADING | TRAILING} remove_str FROM str)

參數(shù)說(shuō)明:

  • str:必需的。需要處理的字符串。
  • remove_str:可選的。需要?jiǎng)h除的前綴和后綴字符串。如果不指定這個(gè)?remove_str,則默認(rèn)值為空格。
  • BOTH:代表同時(shí)刪除前導(dǎo)和尾隨的字符。
  • LEADING:代表只刪除前導(dǎo)字符。
  • TRAILING:代表只刪除尾隨的字符。
  • 如果不指定?{BOTH | LEADING | TRAILING},則默認(rèn)值為?BOTH。

返回值:

  • 從指定字符串的開頭、結(jié)尾或者兩端刪除由指定字符組成的最長(zhǎng)字符串。
  • 當(dāng)參數(shù)為?NULL?時(shí),?TRIM()?函數(shù)將返回?NULL。

示例:

SELECT
    TRIM('   Hello   '),                     // Hello
    TRIM(BOTH FROM '   Hello   '),           // Hello
    TRIM(LEADING FROM '   Hello   '),        // Hello   尾部還有空格
    TRIM(TRAILING FROM '   Hello   '),       //   Hello頭部還有空格
    TRIM('_' FROM '___Hello___'),	         // Hello
    TRIM(BOTH '_' FROM '___Hello___'),       // Hello
    TRIM(LEADING '_' FROM '___Hello___'),    // Hello___
    TRIM(TRAILING '_' FROM '___Hello___'),   // ___Hello
    TRIM('_#' FROM '_#_#_Hello_#_#'),        // _Hello
    TRIM(BOTH '_#' FROM '_#_#_Hello_#_#'),   // _Hello
    TRIM(LEADING '_#' FROM '_#_#_Hello_#_#'),// _Hello_#_#
    TRIM(TRAILING '_#' FROM '_#_#_Hello_#_#')// _#_#_Hello

十、RTRIM 刪除尾部空格

MySQL RTRIM() 函數(shù)刪除指定字符串的尾部空格,并返回沒有尾部空格的字符串。如果刪除字符串的尾隨空格,請(qǐng)使用 RTRIM() 函數(shù);如果想同時(shí)刪除字符串的前導(dǎo)和尾隨空格,請(qǐng)使用 TRIM() 函數(shù)。

語(yǔ)法:

RTRIM(str)

參數(shù)說(shuō)明:

  • str:必需的。需要?jiǎng)h除尾部空格的字符串。

返回值:

  • 刪除了尾部空格的字符串。
  • 返回?NULL情況:參數(shù)為?NULL?。

示例:

SELECT
    RTRIM('   Hello '), //    Hello已刪除尾部空格
    RTRIM(NULL);        // NULL

十一、LTRIM 刪除前導(dǎo)空格

MySQL LTRIM() 函數(shù)刪除指定字符串的前導(dǎo)空格,并返回沒有前導(dǎo)空格的字符串。如果刪除字符串的尾隨空格,請(qǐng)使用 RTRIM() 函數(shù);如果想同時(shí)刪除字符串的前導(dǎo)和尾隨空格,請(qǐng)使用 TRIM() 函數(shù)。

語(yǔ)法:

LTRIM(str)

參數(shù)說(shuō)明:

  • str:必需的。需要?jiǎng)h除前導(dǎo)空格的字符串。

返回值:

  • 刪除了前導(dǎo)空格的字符串。
  • 返回NULL情況:參數(shù)為?NULL。

示例:

SELECT
    LTRIM('   Hello '),    // Hello 尾部空格未刪除
    LTRIM(NULL)            // NULL

十二、REVERSE?反轉(zhuǎn)后字符串

MySQL?REVERSE()?函數(shù)返回反轉(zhuǎn)后的字符串。?REVERSE()?函數(shù)基于字符操作而不是基于字節(jié)。

語(yǔ)法:

REVERSE(str)

參數(shù)說(shuō)明:

  • str:必需的。需要反轉(zhuǎn)的字符串。

返回值:

  • 返回反轉(zhuǎn)后的字符串。
  • 當(dāng)參數(shù)為?NULL?時(shí),?REVERSE()?函數(shù)將返回?NULL。

示例:

SELECT
    REVERSE('ABC'),    // CBA
    REVERSE('abc'),    // cba
    REVERSE('123'),    // 231
    REVERSE(NULL)      // NULL

十三、ASCII?轉(zhuǎn)為ASCII 值

MySQL?ASCII()?函數(shù)將指定的字符轉(zhuǎn)為對(duì)應(yīng)的 ASCII 值。ASCII()?只返回由指定的字符串的第一個(gè)字符的 ASCII 值。

語(yǔ)法:

ASCII(character)

參數(shù)說(shuō)明:

  • character:必需的。 要返回 ASCII 值的字符。 如果多余一個(gè)字符,它將只返回第一個(gè)字符的 ASCII 值。

返回值:

  • 給定的字符串的第一個(gè)字符的 ASCII 值。
  • 返回?NULL情況:character?為?NULL

示例:

SELECT ASCII('A');    // 65

十四、BIN 轉(zhuǎn)為二進(jìn)制

MySQL?BIN()?函數(shù)返回給定數(shù)字的二進(jìn)制值的字符串表示。

語(yǔ)法:

BIN(number)

參數(shù)說(shuō)明:

  • number:必需的。需要以二進(jìn)制表示的數(shù)字。

返回值:

  • 表示給定數(shù)字的二進(jìn)制值。
  • 返回?NULL情況:number?為?NULL。

示例:

SELECT
    BIN(2),        // 10
    BIN(3.6),      // 11
    BIN('3A'),     // 11
    BIN(NULL)      // NULL

十五、BIT_LENGTH 取位為單位的長(zhǎng)度

MySQL BIT_LENGTH() 函數(shù)以位為單位返回給定字符串的長(zhǎng)度。

如果想以字節(jié)為單位返回字符串的長(zhǎng)度,請(qǐng)使用 LENGTH() 函數(shù)。

如果想返回字符串中的字符數(shù)量,請(qǐng)使用 CHAR_LENGTH() 或者 CHARACTER_LENGTH() 函數(shù)。

語(yǔ)法:

BIT_LENGTH(string)

參數(shù)說(shuō)明:

  • string:必需的。 需要計(jì)算位長(zhǎng)度的字符串。

返回值:

  • 給定字符串的位長(zhǎng)度。
  • 返回?NULL情況:string?為?NULL。
  • 若參數(shù)不為字符串,會(huì)嘗試轉(zhuǎn)為字符串

示例:

SELECT
    BIT_LENGTH('a'),        // 8
    BIT_LENGTH('string'),   // 48
    BIT_LENGTH(1),          // 8
    BIT_LENGTH(01),         // 8
    BIT_LENGTH('01'),       // 16
    BIT_LENGTH('你好'),      // 48
    BIT_LENGTH(NULL)        // NULL

十六、CHAR 轉(zhuǎn)為字符

MySQL?CHAR()?函數(shù)將每個(gè)參數(shù)對(duì)應(yīng)的整數(shù)轉(zhuǎn)為對(duì)應(yīng)的字符,并將這些字符組成一個(gè)字符串返回。

忽略值為NULL的參數(shù)。

語(yǔ)法:

CHAR(num1, [num2, ...])

參數(shù)說(shuō)明:

  • num1, [num2, ...]:必需的。一些整數(shù),或者能轉(zhuǎn)為整數(shù)的值。

返回值:

  • 一個(gè)字符串,其中的字符由每個(gè)整數(shù)參數(shù)對(duì)應(yīng)的字符組成。
  • 參數(shù)NULL直接被忽略,只有一個(gè)參數(shù)且為NULL時(shí)返回空。

示例:

SELECT
    CHAR(65, 66, 67),            // ABC
    CHAR(65, '66', '67'),        // ABC
    CHAR(65.4, '66.5', '67.6'),  // ABC
    CHAR(65, 66, NULL, 67),      // ABC
    CHAR(NULL)                   // 

十七、CHAR_LENGTH 轉(zhuǎn)為字符后的長(zhǎng)度

在 MySQL 中, CHAR_LENGTH() 返回給定字符串的長(zhǎng)度。 CHAR_LENGTH() 返回的是字符串中字符的數(shù)量,與字符編碼無(wú)關(guān)。此函數(shù)是 CHARACTER_LENGTH() 函數(shù)的別名。

語(yǔ)法:

CHARACTER_LENGTH(string)

參數(shù)說(shuō)明:

  • string:必需的。 需要計(jì)算長(zhǎng)度的字符串。

返回值:

  • 給定字符串的長(zhǎng)度(字符的個(gè)數(shù))。
  • 返回?NULL情況:string?為?NULL

示例:

SELECT CHAR_LENGTH('cxian');    // 5

十八、CHARACTER_LENGTH?轉(zhuǎn)為字符后的長(zhǎng)度

在 MySQL 中, CHARACTER_LENGTH() 返回給定字符串的長(zhǎng)度。 CHARACTER_LENGTH() 返回的是字符串中字符的數(shù)量,與字符編碼無(wú)關(guān)。此函數(shù)是 CHAR_LENGTH() 函數(shù)的別名。

用法同CHAR_LENGTH(number)函數(shù)。

十九、ELT 指定參數(shù)返回

MySQL?ELT()?函數(shù)從第二個(gè)參數(shù)開始查找由第一個(gè)參數(shù)指定位置的參數(shù)并作為字符串返回。

語(yǔ)法:

ELT(pos, str1, str2, ...)

參數(shù)說(shuō)明:

  • pos:必需的。一個(gè)用于指定位置的數(shù)字。

  • str1, str2, ...:必需的。字符串參數(shù)列表。

返回值:

  • 由?pos?指定位置的參數(shù)。
  • pos大于0:返回第pos+1的參數(shù)。
  • 返回?NULL情況:pos?小于 1 或者超過參數(shù)的數(shù)量。

示例:

SELECT
    ELT(1, 'Aa', 'Bb', 'Cc'),    // Aa
    ELT(3, 'Aa', 'Bb', 'Cc'),    // Cc
    ELT(-1, 'Aa', 'Bb', 'Cc'),   // NULL
    ELT(0, 'Aa', 'Bb', 'Cc'),    // NULL
    ELT(4, 'Aa', 'Bb', 'Cc')     // NULL

二十、EXPORT_SET 指定分隔符拼接字符串

語(yǔ)法:

EXPORT_SET(bits, on, off, separator, length)

參數(shù)說(shuō)明:

  • bits:必需的。一個(gè)數(shù)字。將?bits?轉(zhuǎn)為二進(jìn)制并反轉(zhuǎn)后的各個(gè)位的值決定?on?還是?off?出現(xiàn)在該位置。

  • on:必需的。當(dāng)位值為?1?時(shí)使用的字符串。

  • off:必需的。當(dāng)位值為?0?時(shí)使用的字符串。

  • separator:可選的。分隔符或者分隔字符串,默認(rèn)值為?,。

  • length:可選的。集合的元素的個(gè)數(shù),默認(rèn)值為?64。

返回值:

  • 根據(jù)?bits?對(duì)應(yīng)的二進(jìn)制并反轉(zhuǎn)后的值挑選對(duì)應(yīng)的字符串,并返回一個(gè)逗號(hào)分隔的字符串集合。

示例:

SELECT
    EXPORT_SET(5, 'Aa', 'Bb', '#', 4),    // Aa#Bb#Aa#Bb
        // bits = 5, 5 的二進(jìn)制位 101, 總長(zhǎng)度為 4,左邊補(bǔ) 0 變?yōu)?0101。然后反轉(zhuǎn)變?yōu)?1010。
        // 按 1010 中的每位的值使用 on 或者 off:
            // 第一位為 1,則使用 Aa。
            // 第二位為 0,則使用 Bb。
            // 第三位為 1,則使用 Aa。
            // 第四位為 0,則使用 Bb。
        // 最后將所有的字符串使用分隔符 # 組合起來(lái),即:Aa#Bb#Aa#Bb。
    EXPORT_SET(5, 'Y', 'N', ',', 4),      // Y,N,Y,N
    EXPORT_SET(5, '1', '0', ',', 10),     // 1,0,1,0,0,0,0,0,0,0
    EXPORT_SET(0, 'Y', 'N', ',', 4)       // N,N,N,N

二十一、FIELD 取值在列表中的索引

MySQL?FIELD()?函數(shù)返回一個(gè)指定的值在給定的列表中的索引。

語(yǔ)法:

FIELD(value, v1, v2, ..., vN)

參數(shù)說(shuō)明:

  • value:必須的。要在列表中查找的值。
  • v1, v2, ..., vN:必須的。被搜索的列表中的各個(gè)元素。

返回值:

  • 指定的值對(duì)應(yīng)的位置索引(索引從1開始)。
  • 返回0情況:
    • 找不到指定的值。
    • 查找的值為?NULL。

示例:

SELECT 
    FIELD('A', 'A', 'B', 'C'),    // 1
    FIELD('1', 'A', 'B', 'C'),    // 0
    FIELD(NULL, NULL, 'B', 'C')  // 0

二十二、FIND_IN_SET 分隔串中找字符串

MySQL FIND_IN_SET() 函數(shù)返回字符串在一個(gè)逗號(hào)分隔的字符串列表中的索引。 FIND_IN_SET() 函數(shù)與 FIELD() 函數(shù)類似,不同的是 FIELD() 中的列表是由多個(gè)參數(shù)組成的,并且參數(shù)的類型也不一定是字符串。

語(yǔ)法:

FIND_IN_SET(string, string_list)

參數(shù)說(shuō)明:

  • string:必須的。這是要搜索的字符串。

  • string_list:必須的。這是一個(gè)使用逗號(hào)分隔的字符串列表。

返回值:

  • 找到則返回對(duì)應(yīng)的位置索引。
  • 返回?0情況:
    • 找不到。
    • 找到空串。
  • 返回?NULL情況:
    • ???????任何一個(gè)參數(shù)為NULL。

示例:

SELECT 
  FIND_IN_SET('A', 'A,B,C'),    // 1
  FIND_IN_SET('1', 'A,B,C'),    // 0
  FIND_IN_SET(NULL, 'A,B,C'),   // NULL
  FIND_IN_SET('D', NULL)        // NULL

二十三、FORMAT 數(shù)字格式化為字符串

MySQL?FORMAT()?函數(shù)將數(shù)字四舍五入到指定的小數(shù)位數(shù),并按照??#,###,###.##之類的格式進(jìn)行格式化,然后將結(jié)果作為字符串返回。

語(yǔ)法:

FORMAT(number, decimal_places)

參數(shù)說(shuō)明:???????

  • number:必需的。 需要格式化的數(shù)字。
  • decimal_places:必需的。 要保留的小數(shù)位數(shù)。

返回值:

  • ???????指定小數(shù)位數(shù)的類似于?#,###,###.##?格式的字符串。有一定規(guī)則:
    • 若以數(shù)字開頭,則將開頭的數(shù)字部分轉(zhuǎn)為數(shù)字。
    • 若不能轉(zhuǎn)為數(shù)字,則按照?0?處理。
  • 返回?NULL情況:number為null。
  • 無(wú)小數(shù)點(diǎn)情況:decimal_places為0。

示例:

SELECT
    FORMAT(111111, 2),    // 111,111.00
    FORMAT(111111.111, 2),// 111,111.11
    FORMAT(111111.111, 0),// 111,111
    FORMAT('111111', 2),  // 111,111.00
    FORMAT('11111A', 2),  // 11,111.00
    FORMAT('A11111', 2),  // 0.00
    FORMAT(NULL, 2)       // NULL

二十四、FROM_BASE64 解碼BASE64編碼的字符串

MySQL FROM_BASE64() 函數(shù)解碼 base-64 編碼的數(shù)據(jù)并將結(jié)果作為二進(jìn)制字符串返回。

FROM_BASE64() 函數(shù)可以解碼 TO_BASE64() 函數(shù)的結(jié)果。

不同于現(xiàn)有的 base-64 方案, MySQL TO_BASE64() 和 FROM_BASE64() 函數(shù)有些特殊的規(guī)則:

  • 字母值 62 的編碼是 '+'.
  • 字母值 63 的編碼是 '/'.
  • 編碼輸出由 4 個(gè)可打印字符組成。輸入數(shù)據(jù)的每 3 個(gè)字節(jié)使用 4 個(gè)字符進(jìn)行編碼。如果最后一組長(zhǎng)度不夠 4,則用 '=' 字符填充。
  • 在編碼輸出的每 76 個(gè)字符之后添加一個(gè)換行符,以將長(zhǎng)輸出分成多行。
  • 解碼識(shí)別并忽略換行符、回車符、制表符和空格。

語(yǔ)法:

FROM_BASE64(str)

參數(shù)說(shuō)明:

  • str:必需的。 用于?base-64?解碼的字符串。

返回值:

  • 將?base-64?編碼的數(shù)據(jù)解碼結(jié)果作為二進(jìn)制字符串返回。
  • 返回?NULL情況:str?為?NULL。
  • 由于?FROM_BASE64()?函數(shù)返回的是二進(jìn)制字符串,因此在 mysql 客戶端顯示的結(jié)果可能是十六進(jìn)制內(nèi)容。請(qǐng)?jiān)诘顷憰r(shí)使用?--binary-as-hex=false?以禁用將二進(jìn)制內(nèi)容顯示為十六進(jìn)制。

示例一登陸時(shí)不使用--binary-as-hex

mysql常用字符串函數(shù),Mysql,數(shù)據(jù)庫(kù),MYSQL,MYSQL函數(shù),MYSQL高級(jí)函數(shù),學(xué)習(xí)筆記

示例二登陸時(shí)使用--binary-as-hex=false

mysql常用字符串函數(shù),Mysql,數(shù)據(jù)庫(kù),MYSQL,MYSQL函數(shù),MYSQL高級(jí)函數(shù),學(xué)習(xí)筆記

注:使用Navicat Premium連接數(shù)據(jù)庫(kù)顯示效果如示例二。

二十五、HEX 取參數(shù)的十六進(jìn)制值的字符串表示

MySQL?HEX()?函數(shù)返回給定數(shù)字或字符串的十六進(jìn)制值的字符串表示。

語(yǔ)法:

HEX(number)
HEX(string)

???????參數(shù)說(shuō)明:

  • number/string:必需的。需要以十六進(jìn)制表示的數(shù)字或字符串。

返回值:

  • ???????參數(shù)的十六進(jìn)制值。
  • 返回?NULL情況:number/string?為?NULL。

示例:

SELECT
    HEX(255),    // FF
    HEX('b'),    // 62
    HEX('abc'),  // 616263
    HEX(NULL)    // NULL

二十六、INSERT?字符串中插入一個(gè)新的字符串

MySQL?INSERT()?函數(shù)在一個(gè)字符串中插入一個(gè)新的字符串,該新的字符串會(huì)替換源字符串中指定位置開始的指定長(zhǎng)度的子字符串。

語(yǔ)法:

INSERT(str, pos, len, newstr)

參數(shù)說(shuō)明:

  • str:必需的。 需要處理的字符串。
  • pos:必需的。 開始插入新字符串 newstr 的位置。pos 的值從 1 開始。
  • len:必需的。 要被替換的字符的數(shù)量。
  • newstr:必需的。 要插入的新字符串。

返回值:

  • ???????被處理后的原字符串?str,其中?str?中從?pos?開始長(zhǎng)度為?len?的子字符串被?newstr?替換掉。
  • 不替換情況:
    • len為0。
    • pos不在字符串長(zhǎng)度范圍內(nèi)。
  • 若len > str.length - pos,則從位置?pos?替換str.length - pos的字符串
  • 返回?NULL情況:
    • ??????????????任何參數(shù)是?NULL。

示例:

SELECT
    INSERT(NULL, 6, 1, ' '),              // NULL
    INSERT('Hello_World', 6, 1, ' '),     // Hello World
    INSERT('Hello_World', 6, 20, ' '),    // Hello

二十七、INSTR 查找子串在目標(biāo)串出現(xiàn)的第一個(gè)位置

MySQL INSTR() 函數(shù)返回一個(gè)子字符串在一個(gè)字符串中第一次出現(xiàn)的位置的數(shù)字索引。 INSTR() 函數(shù)是不區(qū)分大小寫的。 INSTR() 函數(shù)與具有兩個(gè)參數(shù)的 LOCATE() 函數(shù)的和 POSITION() 功能相同。

語(yǔ)法:

INSTR(str, substr)

參數(shù)說(shuō)明:

  • str:必需的。 被搜索的字符串。
  • substr:必需的。 在 str 中搜索的子串。

返回值:

  • 子字符串?substr?在字符串?str?中的位置的數(shù)字索引。???????(數(shù)字索引從?1?開始)???????
  • 返回?0情況:找不到。
  • 返回?NULL情況:任意一個(gè)參數(shù)為?NULL。

示例:

SELECT
    INSTR('Hello World', 'He'),    // 1
    INSTR('Hello World', 'he'),    // 1
    INSTR('Hello World', 'do'),    // 0
    INSTR('Hello World', NULL)     // NULL

二十八、LCASE 轉(zhuǎn)為小寫

MySQL LCASE() 函數(shù)將指定字符串轉(zhuǎn)為小寫并返回。 LCASE() 函數(shù)是 LOWER() 函數(shù)的別名。
如果想將字符串轉(zhuǎn)換為大寫,請(qǐng)使用 UCASE() 或者 UPPER() 函數(shù)。

語(yǔ)法:

LCASE(str)

參數(shù)說(shuō)明:

  • str:必需的。 被處理的字符串。

返回值:

  • ???????指定字符串的小寫形式。
  • 返回?NULL情況:str為NULL。

示例:

SELECT 
    LCASE('Hello'),    // hello
    LCASE(NULL)        // NULL

二十九、LOWER 轉(zhuǎn)為小寫

MySQL LOWER() 函數(shù)將指定字符串轉(zhuǎn)為小寫并返回。 LCASE() 函數(shù)是 LOWER() 函數(shù)的別名。
如果想將字符串轉(zhuǎn)換為大寫,請(qǐng)使用 UCASE() 或者 UPPER() 函數(shù)。
???????詳見:二十七、LCASE 轉(zhuǎn)為小寫

三十、LEFT 取左子串字符串

MySQL LEFT() 函數(shù)從指定字符串的左側(cè)返回指定數(shù)量的字符組成的字符串。如果想從字符串的右側(cè)提取字符,請(qǐng)使用 RIGHT() 函數(shù)。

語(yǔ)法:

LEFT(string, length)

參數(shù)說(shuō)明:

  • string:必需的。需要從中提取字符的字符串。
  • length:必需的。需要從字符串中提取字符的數(shù)量。

返回值:

  • ???????指定數(shù)量的字符組成的左子字符串。
  • 返回原字符串情況:length大于string的長(zhǎng)度。
  • 返回空串情況:length為小于等于0。
  • 返回?NULL情況:任意一個(gè)參數(shù)為?NULL。

示例:

SELECT
    LEFT('Hello', 2),    // He
    LEFT('Hello', 6),    // Hello
    LEFT('Hello', 0),    // 
    LEFT('Hello', -1),   //
    LEFT('Hello', NULL)  // NULL

三十一、RIGHT?取右子串字符串

MySQL RIGHT() 函數(shù)從指定字符串的右側(cè)返回指定數(shù)量的字符組成的字符串。如果想從字符串的左側(cè)提取字符,請(qǐng)使用 LEFT() 函數(shù)。

操作參考三十、LEFT 取左子串字符串相似。不同是LEFT 是左邊,而RIGHT是右邊。(這里不再舉例)

三十二、LOCATE 查找第一個(gè)子串的位置

MySQL LOCATE() 函數(shù)返回一個(gè)字符串在另一個(gè)字符串中第一次出現(xiàn)的位置的數(shù)字索引。 LOCATE() 函數(shù)是不區(qū)分大小寫的。 LOCATE() 函數(shù)與具有兩個(gè)參數(shù)的 INSTR() 函數(shù)的和 POSITION() 功能相同。

語(yǔ)法:

LOCATE(substr, str)
LOCATE(substr, str, startPos)

參數(shù)說(shuō)明:

  • substr:必需的。 在 str 中搜索的子串。
  • str:必需的。 被搜索的字符串。
  • startPos:可選的。 在 str 中開始搜索的位置,從 1 開始。

返回值:

  • 子字符串?substr?在字符串?str?中的位置的數(shù)字索引。(數(shù)字索引從?1?開始)???????
  • 返回?0情況:
    • 找不到。
    • startPos?為?0。
  • 返回?NULL情況:任意一個(gè)參數(shù)為?NULL

示例:

SELECT
    LOCATE('He', 'Hello World'),    // 1
    LOCATE('ho', 'Hello World'),    // 1
    LOCATE('go', 'Hello World'),    // 0
    LOCATE(NULL, 'Hello World'),    // NULL

???????三十三、LPAD?左側(cè)填充指定的字符串使其達(dá)到指定的長(zhǎng)度

MySQL LPAD() 函數(shù)在字符串的左側(cè)填充指定的字符串,使其達(dá)到指定的長(zhǎng)度。如果想在字符串的右側(cè)填充字符串,請(qǐng)使用 RPAD() 函數(shù)。

語(yǔ)法:

LPAD(str, len, padstr)

參數(shù)說(shuō)明:

  • str:必需的。需要被填充的字符串。
  • len:必需的。填充字符串需要達(dá)到的長(zhǎng)度。
  • padstr:可選的。被用來(lái)填充到原字符串左側(cè)的字符串。

返回值:

  • ???????填充后的字符串。
  • len?小于原字符串?str?的長(zhǎng)度,?str?將被截?cái)嗟?len?的長(zhǎng)度。
  • 返回?NULL情況:
    • ??????????????len?為負(fù)數(shù)。
    • 任意一個(gè)參數(shù)為?NULL。

示例:

SELECT
    LPAD('oh', 5, 'o'),        // ooooooh
    LPAD('oh', 1, '1'),        // o
    LPAD('oh', -1, 'o'),       // NULL
    LPAD('World', 15, 'Hello') // HelloHelloWorld

三十四、RPAD?右側(cè)填充指定的字符串使其達(dá)到指定的長(zhǎng)度

MySQL RPAD() 函數(shù)在一個(gè)字符串的右側(cè)填充指定的字符串,使其達(dá)到指定的長(zhǎng)度。如果想在字符串的左側(cè)填充字符串,請(qǐng)使用 LPAD() 函數(shù)。

操作與LPAD相似。不同點(diǎn)是LPAD是多左側(cè),RPAD是右側(cè)。詳見:三十三、LPAD?左側(cè)填充指定的字符串使其達(dá)到指定的長(zhǎng)度。

三十五、MAKE_SET 按參數(shù)1的二進(jìn)制位反轉(zhuǎn)返回對(duì)應(yīng)位置參數(shù)以逗號(hào)分隔集合

MySQL?MAKE_SET()?函數(shù)返回一個(gè)逗號(hào)分隔的字符串集合,該函數(shù)通過第一個(gè)參數(shù)對(duì)應(yīng)的二進(jìn)制決定是否其他字符串參數(shù)是否添加到結(jié)果集合中。

語(yǔ)法:

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

參數(shù)說(shuō)明:

  • bits:必需的。一個(gè)數(shù)字。將?bits?轉(zhuǎn)為二進(jìn)制并反轉(zhuǎn)后的各個(gè)位決定?str1, str2, ...?是否出現(xiàn)在結(jié)果中。

  • str1, str2, ...:必需的。備選字符串。str1, str2, ...?分別由?bits?二進(jìn)制并反轉(zhuǎn)后的值中的第?1, 2, ...?決定是否出現(xiàn)在結(jié)果中。

返回值:

  • ???????根據(jù)?bits?對(duì)應(yīng)的二進(jìn)制并反轉(zhuǎn)后的值挑選對(duì)應(yīng)的字符串,并返回一個(gè)逗號(hào)分隔的字符串集合。
  • NULL參數(shù)直接被忽略。
  • 若bits為0,返回空。

示例:

SELECT
    MAKE_SET(0, 'a', 'b', 'c', 'd'), //
    MAKE_SET(1, 'a', 'b', 'c', 'd'), // a
    MAKE_SET(2, 'a', 'b', 'c', 'd'), // a,b
    MAKE_SET(3, 'a', 'b', 'c', 'd'), // b
    MAKE_SET(4, 'a', 'b', 'c', 'd'). // c
  • bits為0:返回空
  • bits為1:二進(jìn)制為0001,反轉(zhuǎn)后為1000,對(duì)應(yīng)a,返回a。
  • bits為2:二進(jìn)制為0010,反轉(zhuǎn)后為0100,對(duì)應(yīng)b,返回b。
  • bits為3:二進(jìn)制為0011,反轉(zhuǎn)后為1100,對(duì)應(yīng)ab,返回a,b。
  • bits為4:二進(jìn)制為0100,反轉(zhuǎn)后為0010,對(duì)應(yīng)c,返回c。

三十六、MID 取指定位置指定長(zhǎng)度的子字符串

MySQL?MID()?函數(shù)返回一個(gè)字符串中從指定位置開始的指定長(zhǎng)度的子字符串。

MID(str, pos, len) 等同于 SUBSTRING(str, pos, len) 和 SUBSTR(str, pos, len) 函數(shù)。

語(yǔ)法:

MID(str, pos, len)

詳見:四、SUBSTRING 取子字符串

三十七、OCT 數(shù)字轉(zhuǎn)八進(jìn)制

MySQL?OCT()?函數(shù)返回給定數(shù)字的八進(jìn)制值的字符串表示。

語(yǔ)法:

OCT(number)

參數(shù)說(shuō)明:

  • number:必需的。需要以八進(jìn)制表示的數(shù)字。

返回值:

  • ???????給定數(shù)字的八進(jìn)制值。
  • 返回?NULL情況:參數(shù)?number?為?NULL。
  • number?為非數(shù)字:首先嘗試將其轉(zhuǎn)為數(shù)字后再返回?cái)?shù)字的八進(jìn)制表示,無(wú)法轉(zhuǎn)為數(shù)字則返回0。

示例:

SELECT
    OCT(12),     // 14
    OCT(3.5),    // 3
    OCT('A'),    // 0
    OCT('3A'),   // 3
    OCT(NULL)    // NULL

三十八、OCTET_LENGTH 取以字節(jié)為單位的長(zhǎng)度

MySQL OCTET_LENGTH() 函數(shù)返回指定字符串的以字節(jié)為單位的長(zhǎng)度。如果想返回字符的數(shù)量,請(qǐng)使用 CHAR_LENGTH() 函數(shù)或者 CHARACTER_LENGTH() 函數(shù)。

與 LENGTH() 函數(shù)相同。

詳見:八、LENGTH 取以字節(jié)為單位的長(zhǎng)度

三十九、ORD 取第一個(gè)字符的ASCII碼

MySQL ORD() 函數(shù)返回字符串參數(shù)中的第一個(gè)字符的字符代碼。如果第一個(gè)字符是單字節(jié)字符, ORD() 函數(shù)返回字符的 ASCII 值;如果第一個(gè)字符是多字節(jié)字符,返回公式 第一個(gè)字節(jié)代碼 + 第二個(gè)字節(jié)的代碼 * 256 + 第三個(gè)字節(jié)的代碼 * 256 * 256 的結(jié)果。

語(yǔ)法:

ORD(string)

參數(shù)說(shuō)明:

  • string:必需的。一個(gè)字符串。

返回值:

  • ???????首先獲取參數(shù)?string?最左側(cè)的字符,然后根據(jù)字符是否多字節(jié)字符按如下規(guī)則返回:
    • 若第一個(gè)字符是單字節(jié)字符, 返回字符的 ASCII 值。
    • 若第一個(gè)字符是多字節(jié)字符,根據(jù)返回公式?第一個(gè)字節(jié)代碼 + 第二個(gè)字節(jié)的代碼 * 256 + 第三個(gè)字節(jié)的代碼 * 256 * 256?的結(jié)果。

示例:

SELECT
    ORD('abc'),    // 97
    ORD('a'),      // 97
    ORD('A'),      // 65
    ORD('北京')     // 15043735

四十、POSITION?查找子串在目標(biāo)串出現(xiàn)的第一個(gè)位置

MySQL POSITION() 函數(shù)返回一個(gè)字符串在另一個(gè)字符串中第一次出現(xiàn)的位置的數(shù)字索引。 POSITION() 函數(shù)是不區(qū)分大小寫的。 POSITION() 函數(shù)與具有兩個(gè)參數(shù)的 INSTR() 函數(shù)和 LOCATE() 函數(shù) 功能相同。語(yǔ)法上有些不同。

語(yǔ)法:

POSITION(substr IN str)

參數(shù)說(shuō)明:

  • substr:必需的。 在?str?中搜索的子串。

  • str:必需的。 被搜索的字符串。

返回值:

  • ???????子字符串?substr?在字符串?str?中的位置的數(shù)字索引。(數(shù)字索引從?1?開始)
  • 返回0情況:找不到。
  • 返回?NULL情況:任意一個(gè)參數(shù)為?NULL。

示例:

SELECT
    POSITION('Wo' IN 'Hello World'),    // 7
    POSITION('wo' IN 'Hello World'),    // 7
    POSITION('1' IN 'Hello World'),     // 0
    POSITION('l' IN NULL)               // NULL

四十一、QUOTE?用單引號(hào)包圍字符串

MySQL?QUOTE()?函數(shù)返回一個(gè)用單引號(hào)包圍的字符串。?QUOTE()?函數(shù)會(huì)對(duì)?\,?'?符號(hào)轉(zhuǎn)義。

語(yǔ)法:

QUOTE(string)

參數(shù)說(shuō)明:

  • string:必需的。一個(gè)字符串。

返回值:

  • 用單引號(hào)包圍的字符串。???????
  • 返回NULL情況:參數(shù)為?NULL。

示例:

SELECT
    QUOTE('Hello''word!'),	// 'Hello\'word!'
    QUOTE('Hello world!'),	// 'Hello world!'
    QUOTE(NULL)							// NULL

四十二、REPEAT?字符串重復(fù)指定的次數(shù)

MySQL?REPEAT()?函數(shù)將指定的字符串重復(fù)指定的次數(shù)并返回。

語(yǔ)法:

REPEAT(str, count)

參數(shù)說(shuō)明:

  • str:必需的。 需要重復(fù)的字符串。

  • count:必需的。 需要重復(fù)的次數(shù)。

返回值:

  • ???????字符串重復(fù)指定的次數(shù)并返回。
  • 返回空字符串?''情況:count為0。
  • 返回?NULL情況:任意一個(gè)參數(shù)為?NULL。

示例:

SELECT
    REPEAT('Hello', 3),    // HelloHelloHello
    REPEAT('MySQL', 0),    // 
    REPEAT('MySQL', -1),   // 
    REPEAT('MySQL', NULL)  // NULL

四十三、SOUNDEX 取發(fā)音的 soundex 字符串

MySQL?SOUNDEX()?函數(shù)返回表示字符串發(fā)音的 soundex 字符串。?SOUNDEX()?函數(shù)用來(lái)比較兩個(gè)單詞的發(fā)音是否相同。如果兩個(gè)單詞發(fā)音相同,則他們的 soundex 字符串是相同的。

SOUNDEX(string) 函數(shù)只處理參數(shù) string 中的字母,其他非字母字符將被忽略。

語(yǔ)法:

SOUNDEX(string)

參數(shù)說(shuō)明:

  • string:必需的。一個(gè)字符串。

返回值:

  • ???????發(fā)音的 soundex 字符串。
    • 標(biāo)準(zhǔn)的 soundex 字符串的長(zhǎng)度為四個(gè)字符,但 SOUNDEX() 函數(shù)返回的字符串長(zhǎng)度可能超過 4。如果您想獲取標(biāo)準(zhǔn)的 soundex 字符串,您可以對(duì) SOUNDEX() 函數(shù)的結(jié)果使用 SUBSTRING() 函數(shù)進(jìn)行截取。

示例:

SELECT
    SOUNDEX('Hole'),    // H400
    SOUNDEX('Whole'),	// W400
    SOUNDEX('Our'),		// O600
    SOUNDEX('Our123'),  // O600
	SOUNDEX('123Our123')// O600

四十四、SPACE 取指定數(shù)量空格字符串

MySQL?SPACE()?函數(shù)返回一個(gè)字符串,它由指定數(shù)量的空格符組成。

語(yǔ)法:

SPACE(count)

參數(shù)說(shuō)明:

  • count:必需的。組成字符串的空格符號(hào)的數(shù)量。

返回值:

  • 由指定數(shù)量的空格組成的字符串。???????
  • 返回''情況:count?小于 1 。
  • 返回?NULL情況:參數(shù)為?NULL

示例:

SELECT
    LENGTH(SPACE(2)),    // 2
    LENGTH(SPACE(-1)),   // 0
    SPACE(NULL)          // NULL

四十五、STRCMP?比較兩個(gè)字符串

MySQL?STRCMP()?函數(shù)比較兩個(gè)字符串并返回比較結(jié)果。STRCMP()?函數(shù)基于字符串采用的字符排列規(guī)則(collation)比較兩個(gè)字符串。

語(yǔ)法:

STRCMP(str1, str2)

參數(shù)說(shuō)明:

  • str1:必需的。參與比較的第 1 個(gè)字符串。

  • str2:必需的。參與比較的第 2 個(gè)字符串。

返回值:

  • ???????兩個(gè)字符串比較后的結(jié)果。
    • str1?等于?str1,?STRCMP()?函數(shù)將返回?0。
    • str1?小于?str1,?STRCMP()?函數(shù)將返回?-1
    • str1?大于?str1,?STRCMP()?函數(shù)將返回?1。
    • 返回?NULL情況:任意個(gè)參數(shù)為?NULL。

示例:

SELECT
    STRCMP('hello', 'hello'),    // 0
    STRCMP('hello1', 'hello'),   // 1
    STRCMP('hello', 'hello1'),   // -1
    STRCMP('hello', 'world'),    // -1
    STRCMP(NULL, NULL)           // NULL
  • 修改排序規(guī)則比較如下:
SET @s1 = _utf8mb4 'hello' COLLATE utf8mb4_general_ci;
SET @s2 = _utf8mb4 'Hello' COLLATE utf8mb4_0900_ai_ci;
SET @s3 = _utf8mb4 'hello' COLLATE utf8mb4_0900_as_cs;
SET @s4 = _utf8mb4 'Hello' COLLATE utf8mb4_0900_as_cs;
SELECT 
    STRCMP(@s1, @s2),// 排序規(guī)則不同無(wú)法比較直接報(bào)錯(cuò)
    STRCMP(@s3, @s4) // -1

四十六、TO_BASE64 以base-64編碼字符串

MySQL TO_BASE64() 函數(shù)將給定字符串以 base-64 形式編碼,并返回編碼后的字符串表示。
FROM_BASE64() 函數(shù)可以解碼 TO_BASE64() 函數(shù)的結(jié)果。
不同于現(xiàn)有的 base-64 方案, MySQL TO_BASE64() 和 FROM_BASE64() 函數(shù)有些特殊的規(guī)則:

  • 字母值 62 的編碼是?'+'。
  • 字母值 63 的編碼是?'/'。
  • 編碼輸出由 4 個(gè)可打印字符組成。輸入數(shù)據(jù)的每 3 個(gè)字節(jié)使用 4 個(gè)字符進(jìn)行編碼。如果最后一組長(zhǎng)度不夠 4,則用?'='?字符填充。
  • 在編碼輸出的每 76 個(gè)字符之后添加一個(gè)換行符,以將長(zhǎng)輸出分成多行。
  • 解碼識(shí)別并忽略換行符、回車符、制表符和空格。

語(yǔ)法:

TO_BASE64(str)

參數(shù)說(shuō)明:

  • str:必需的。 用于?base-64?編碼的字符串。

返回值:

  • ???????以?base-64?形式編碼后的字符串。
  • 返回?NULL情況:參數(shù)為NULL。

示例:

SELECT
    TO_BASE64('Hello World'),                // SGVsbG8gV29ybGQ=
    FROM_BASE64(TO_BASE64('Hello World')),   // Hello World
    TO_BASE64(NULL)                          // NULL

四十七、UCASE?字符串轉(zhuǎn)為大寫

MySQL UCASE() 函數(shù)將指定字符串轉(zhuǎn)為大寫并返回。UCASE() 函數(shù)是 UPPER() 函數(shù)的別名。
如果想將字符串轉(zhuǎn)換為小寫,請(qǐng)使用 LCASE() 或者 LOWER() 函數(shù)。

詳見:七、UPPER 字母轉(zhuǎn)大寫。

四十八、UNHEX?十六進(jìn)制數(shù)值的字符串轉(zhuǎn)換為字節(jié)

MySQL UNHEX() 函數(shù)將代表十六進(jìn)制數(shù)值的字符串轉(zhuǎn)換為字節(jié),并返回對(duì)應(yīng)的二進(jìn)制字符串。
UNHEX() 函數(shù)的處理過程為從十六進(jìn)制數(shù)值的字符串參數(shù)中每?jī)晌晦D(zhuǎn)換為字節(jié),并將所有的字節(jié)組合起來(lái)作為二進(jìn)制字符串返回。
UNHEX() 函數(shù)是 HEX() 函數(shù)的逆向操作。

語(yǔ)法:

UNHEX(string)

參數(shù)說(shuō)明:

  • string:必需的。十六進(jìn)制數(shù)值字符串。字符串中只允許出現(xiàn)十六進(jìn)制允許的符號(hào):?0...9,?A...F,?a...f

返回值:

  • ???????二進(jìn)制字符串。
  • 返回?NULL情況:
    • ???????string?不是合法的十六進(jìn)制數(shù)值。
    • number?為?NULL。
  • 由于?UNHEX()?函數(shù)返回的是二進(jìn)制字符串,因此在 mysql 客戶端顯示的結(jié)果可能是十六進(jìn)制內(nèi)容。請(qǐng)?jiān)诘顷憰r(shí)使用?--binary-as-hex=false?以禁用將二進(jìn)制內(nèi)容顯示為十六進(jìn)制。

示例:

SELECT
    HEX('Hello'),        // 48656C6C6F
    UNHEX(HEX('Hello')), // Hello
    UNHEX('Invalid'),    // NULL
    UNHEX(NULL)          // NULL
  • 使用?--binary-as-hex示例詳見:二十五、HEX 取參數(shù)的十六進(jìn)制值的字符串表示。

到了這里,關(guān)于MYSQL字符串函數(shù)詳解和實(shí)戰(zhàn)(字符串函數(shù)大全,內(nèi)含示例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Go字符串實(shí)戰(zhàn)操作大全!

    Go字符串實(shí)戰(zhàn)操作大全!

    在本篇文章中,我們深入探討了Go語(yǔ)言中字符串的魅力和深度。從基礎(chǔ)定義、操作、字符編碼到復(fù)雜的類型轉(zhuǎn)換,每個(gè)環(huán)節(jié)都帶有實(shí)例和代碼示例來(lái)深化理解。通過這些深入的解析,讀者不僅能夠掌握字符串在Go中的核心概念,還能洞察Go設(shè)計(jì)哲學(xué)背后的思考。 關(guān)注公眾號(hào)【

    2024年02月08日
    瀏覽(20)
  • 字符函數(shù)和字符串函數(shù)上篇(詳解)

    字符函數(shù)和字符串函數(shù)上篇(詳解)

    ?? 作者簡(jiǎn)介 :RO-BERRY 致力于C、C++、數(shù)據(jù)結(jié)構(gòu)、TCP/IP、數(shù)據(jù)庫(kù)等等一系列知識(shí),對(duì)純音樂有獨(dú)特的喜愛 ?? 日后方向 : 偏向于CPP開發(fā)以及大數(shù)據(jù)方向,如果你也感興趣的話歡迎關(guān)注博主,期待更新 C語(yǔ)言中對(duì)字符和字符串的處理很是頻繁,但是C語(yǔ)言本身是沒有字符串類型的

    2024年02月16日
    瀏覽(21)
  • 字符函數(shù)和字符串函數(shù)詳解(1)

    字符函數(shù)和字符串函數(shù)詳解(1)

    最近要調(diào)整狀態(tài),寫的文章質(zhì)量不佳讓大家失望,我現(xiàn)在也在反思我在做什么,我會(huì)什么,我學(xué)了什么。等我想明白的那天,我一定能跟大家頂峰相見的,也祝大家 低頭趕路,敬事如儀。 我也在這用基普喬格的一句話感謝大家的支持: \\\" No human is limited.\\\" ,最后回到正題 我們今

    2024年01月16日
    瀏覽(18)
  • C/C++字符函數(shù)和字符串函數(shù)詳解————長(zhǎng)度受限制的字符串函數(shù)

    C/C++字符函數(shù)和字符串函數(shù)詳解————長(zhǎng)度受限制的字符串函數(shù)

    個(gè)人主頁(yè):點(diǎn)我進(jìn)入主頁(yè) 專欄分類:C語(yǔ)言初階? ? ??C語(yǔ)言程序設(shè)計(jì)————KTV? ? ? ?C語(yǔ)言小游戲? ? ?C語(yǔ)言進(jìn)階 C語(yǔ)言刷題 歡迎大家點(diǎn)贊,評(píng)論,收藏。 一起努力,一起奔赴大廠。 目錄 1.前言? ? ? ?? 2.長(zhǎng)度受限制的字符串函數(shù) 2.1strncpy函數(shù) 2.2strncat函數(shù) 2.3strncmp函數(shù)

    2024年02月08日
    瀏覽(89)
  • MySQL-函數(shù)-字符串函數(shù)

    MySQL-函數(shù)-字符串函數(shù)

    2024年01月23日
    瀏覽(20)
  • MySQL函數(shù)之字符串函數(shù)

    目錄 1.concat:將兩個(gè)或多個(gè)字符串組合成一個(gè)字符串 2.length和char_length函數(shù):以字節(jié)和字符獲取字符串的長(zhǎng)度 3.left:返回具有指定長(zhǎng)度的字符串的左邊部分 4.right:回具有指定長(zhǎng)度的字符串的右邊部分 5.replace:搜索并替換字符串中的子字符串。 6.substring:從具有特定長(zhǎng)度的位

    2024年02月05日
    瀏覽(54)
  • C語(yǔ)言字符函數(shù)和字符串函數(shù)詳解

    C語(yǔ)言字符函數(shù)和字符串函數(shù)詳解

    ? ? ? ?Hello, 大家好,我是一代,今天給大家?guī)?lái)有關(guān)字符函數(shù)和字符串函數(shù)的有關(guān)知識(shí) ? ? ? ?所屬專欄:C語(yǔ)言 ? ? ? ?創(chuàng)作不易,望得到各位佬們的互三呦 在C語(yǔ)言中有一些函數(shù)是專門為字符設(shè)計(jì)的,這些函數(shù)的使用都需要包含一個(gè)頭文件ctype.h 如:(注:以下函數(shù)原型都

    2024年03月20日
    瀏覽(32)
  • 字符串函數(shù)+內(nèi)存函數(shù)(詳解)

    字符串函數(shù)+內(nèi)存函數(shù)(詳解)

    本期帶大家一起來(lái)學(xué)習(xí)字符串函數(shù)+內(nèi)存函數(shù)?? ?? ?? 1. 求字符串長(zhǎng)度 strlen???? 字符串 已經(jīng) ‘\\0’ 作為結(jié)束標(biāo)志 ,strlen函數(shù)返回的是在字符串中 ‘\\0’ 前面出現(xiàn)的字符個(gè)數(shù)(不包含 ‘\\0’ )。 strlen在庫(kù)里面的參數(shù)是如此的 ???? 接下來(lái)我們來(lái)模擬實(shí)現(xiàn)strlen ,接下來(lái)

    2023年04月17日
    瀏覽(30)
  • C/C++字符函數(shù)和字符串函數(shù)詳解————內(nèi)存函數(shù)詳解與模擬

    C/C++字符函數(shù)和字符串函數(shù)詳解————內(nèi)存函數(shù)詳解與模擬

    個(gè)人主頁(yè):點(diǎn)我進(jìn)入主頁(yè) 專欄分類:C語(yǔ)言初階? ? ??C語(yǔ)言程序設(shè)計(jì)————KTV? ? ? ?C語(yǔ)言小游戲? ? ?C語(yǔ)言進(jìn)階 C語(yǔ)言刷題 歡迎大家點(diǎn)贊,評(píng)論,收藏。 一起努力,一起奔赴大廠。 目錄 1.前言 2?.memcpy函數(shù) 3.memmove函數(shù) 4.memset函數(shù) ?5.memcmp函數(shù) ? ? ? ? ? ?前面學(xué)習(xí)了關(guān)

    2024年02月08日
    瀏覽(26)
  • C語(yǔ)言——詳解字符函數(shù)和字符串函數(shù)(一)

    C語(yǔ)言——詳解字符函數(shù)和字符串函數(shù)(一)

    Hi,鐵子們好呀!今天博主來(lái)給大家更一篇C語(yǔ)言的字符函數(shù)和字符串函數(shù)~ 具體講的內(nèi)容如下: 前言: 在編程的過程中,我們經(jīng)常要處理字符和字符串,C語(yǔ)言標(biāo)準(zhǔn)庫(kù)中提供了一系列庫(kù)函數(shù),接下來(lái)我們就學(xué)習(xí)一下這些函數(shù)。 眾所周知,C語(yǔ)言中提供了一系列的字符函數(shù),這些

    2024年03月17日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包