MySQL 提供了各种内置的字符串函数来对字符串数据执行不同的操作。在本文中,我们将向您展示字符串函数列表以及每个函数的示例。
MySQL 字符串函数
以下是可用于处理字符串数据的 MySQL 字符串函数列表。
| 字符串函数 | 描述 |
|---|---|
| ASCII() | 返回第一个或最左侧字符的 ASCII 数值。 |
| BIN() | 返回一个包含数字的二进制表示的字符串。 |
| BIT_LENGTH() | 以比特为单位返回参数的长度。 |
| CHAR() | 返回或将每个整数转换为字符。 |
| CHAR_LENGTH() | 此 MySQL 字符串函数返回给定参数中的总字符数。 |
| CHARACTER_LENGTH() | CHAR_LENGTH() 函数的同义词。 |
| CONCAT() | 返回连接后的字符串。 |
| CONCAT_WS() | WS 表示带分隔符。它使用给定的分隔符连接字符串。 |
| ELT() | 返回索引号处的字符串。 |
| EXPORT_SET() | 对于集合值中的每个设置位,返回“on”字符串,对于每个未设置位,此函数返回“off”字符串。 |
| FILED() | 此字符串函数在后续参数中返回第一个参数的索引位置。 |
| FIND_IN_SET() | 在第二个参数中查找并返回第一个参数的索引位置。 |
| FORMAT() | 根据用户指定的位数格式化数字。 |
| HEX() | 字符串值或十进制值的十六进制表示。 |
| INSERT() | 此 MySQL 字符串函数在指定位置插入子字符串,直到达到指定的字符数。 |
| INSTR() | 返回子字符串第一次出现的索引位置。 |
| LCASE() | LOWER() 函数的同义词。 |
| LEFT() | 返回用户指定的从左边开始的字符。 |
| LENGTH() | 此函数返回字节长度。 |
| LIKE | 用于模式匹配。 |
| LOAD_FILE() | 加载指定文件。 |
| LOCATE() | 查找并返回单词第一次出现的 {0} 位置。 |
| LOWER() | 此函数将给定字符串转换为小写。 |
| LPAD() | 左填充给定文本并返回字符串值。 |
| LTRIM() | 移除前导空格。 |
| MAKE_SET() | 返回逗号分隔的字符串集合,其中包含位集合中对应的位。 |
| MATCH() | 使用此方法执行全文搜索。 |
| MID() | 返回从用户给定位置开始的子字符串。 |
| NOT_LIKE | 这是 LIKE 函数(简单模式匹配)的否定。 |
| NOT_REGEXP | 这是 REGEXP 函数的否定。 |
| OCT() | 返回一个包含数字的八进制表示的字符串。 |
| OCTET_LENGTH() | LENGTH() 函数的同义词。 |
| ORD() | 此字符串函数返回给定句子中最左侧字符的字符代码。 |
| POSITION() | LOCATE() 函数的同义词。 |
| QUOTE() | 转义参数,以便在查询语句中使用。 |
| REGEXP | 字符串是否匹配正则表达式。 |
| REPEAT() | 将文本重复指定的次数。 |
| REPLACE() | 查找并将一个词替换为指定的句子。 |
| REVERSE() | 反转给定的字符串(总字符数)。 |
| RIGHT() | 返回用户指定的从右边开始的字符。 |
| RLIKE | 使用此方法检查字符串是否匹配正则表达式。 |
| RPAD() | 用用户指定的次数追加文本。 |
| RTRIM() | 此 MySQL 字符串函数移除尾随空格。 |
| SOUNDEX() | 返回 Soundex 字符串。 |
| SOUNDS LIKE | 比较声音。 |
| SPACE() | 提供或添加指定数量的空格。 |
| STRCMP() | 此方法比较两个字符串。 |
| SUBSTR() | 返回给定字符串的子字符串。 |
| SUBSTRING() | 顾名思义,它返回给定字符串的子字符串。 |
| SUBSTRING_INDEX() | 从给定字符串返回子字符串。它使用分隔符和出现次数来返回子字符串。 |
| TRIM() | 移除字符串的前导和尾随空格。 |
| UCASE() | UPPER() 函数的同义词。 |
| UNHEX() | 返回一个包含数字十六进制表示的字符串。 |
| UPPER() | 此方法用于转换为大写。 |
MySQL 字符串函数示例
以下示例将帮助您理解这些字符串函数。
ASCII、BIN、BIT_LENGTH 示例
在此示例中,我们将使用字符串 ASCII、BIN 和 BIT_LENGTH 函数。
SELECT ASCII(5), ASCII('T'), ASCII('Tut'), ASCII('a');
SELECT BIN(10), BIN(25), BIN(34), BIN(8), BIN(4);
SELECT BIT_LENGTH('Hi'), BIT_LENGTH('Tutorial');

在此示例中,我们使用 MySQL 字符串 CHAR、CHAR_LENGTH 和 CHARACTER_LENGTH 方法来查找字符对应的 ASCII 码长度在 MySQL 中。
SELECT CHAR(84), CHAR(77, 121, 83, 81, 76), CHAR(72, 105);
SELECT CHAR_LENGTH('Hi'), CHAR_LENGTH('MySQL');
SELECT CHARACTER_LENGTH('Hello'), CHARACTER_LENGTH('Tutorial');

MySQL 字符串 CONTACT 和 CONTACT_WS 函数
在此示例中,我们使用 CONCAT 和 CONCAT_WS 方法连接多个字符串值。接下来,我们使用 ELT 来查找指定索引处的单词。
SELECT CONCAT('Hello', 'World'), CONCAT('Hi', 'All');
SELECT CONCAT_WS(',','Hello', 'World'), CONCAT_WS(',','Hi', 'All');
SELECT ELT(2, 'aa','bb','cc','dd'), ELT(4, 'aa','bb','cc','dd');

在此示例中,我们将使用字符串 EXPORT_SET、FIELD 和 FIND_IN_SET 函数。
SELECT EXPORT_SET(5, 'Y', 'N', ',', 4), EXPORT_SET(5, 'Y', 'N', '-', 6);
SELECT FIELD('abc', 'xyz', 'abc', 'Hi', 'you', 'abc');
SELECT FIND_IN_SET('x', 'a,b,c,x,d,e'), FIND_IN_SET('x', 'a,x,c,x,d,e');

MySQL 字符串函数示例 5
在此示例中,我们使用 FORMAT 函数来格式化值,使用 HEX 来查找十六进制值。接下来,我们使用 INSERT 函数来插入子字符串。
SELECT FORMAT(98765.126349, 3), FORMAT(98765.126349, 2, 'ru_RU');
SELECT HEX('Hi'), HEX(25), HEX(255), HEX(495), HEX(1235);
SELECT INSERT('TutorialGateway', 4, 2, 'aaa');

在此实例中,我们使用 INSTR 方法查找子字符串第一次出现的索引位置。接下来,我们使用 LCASE 将文本转换为小写,并使用 LEFT 查找字符串中最左边的字符。
SELECT INSTR('hiabcatabc', 'abc'), INSTR('we abc at abc in xyz', 'abc');
SELECT LCASE('Hi GuYS'), LCASE('MySQL'), LCASE('SUResH');
SELECT LEFT('tutorialgateway', 8), LEFT('tutorialgateway', 12);

在此示例中,我们使用 LENGTH 函数查找字符串长度。接下来,我们使用 LOCATE 查找子字符串第一次出现的索引位置。在最后一个语句中,LOWER 函数将给定句子转换为小写。
SELECT LENGTH('hello'), LENGTH('Hello world');
SELECT LOCATE('at','abcatabc'), LOCATE('abc','we abc at abc in xyz', 7);
SELECT LOWER('HELLO WoRLd'), LOWER('MySQL TUTORIAL'), LOWER('SUResH');

MySQL 字符串 LPAD、LTRIM、RTRIM 函数示例
在此示例中,我们使用 LPAD 在句子左侧附加子字符串,使用 LTRIM 移除前导空格。接下来,我们使用 RTRIM 移除尾随空格。
SELECT LPAD('MySQL', 7, 'Hi'), LPAD('MySQL', 3, 'Hi');
SELECT LTRIM(' Hi'), LTRIM(' MySQL');
SELECT RTRIM('Hello '), RTRIM('MySQL ');

在此字符串函数示例中,我们使用了 MAKE_SET、MID 和 OCT 函数。
SELECT MAKE_SET(2, 'aa', 'bb', 'cc'), MAKE_SET(1|3, 'aa', 'bb', 'cc');
SELECT MID('tutorialgateway', 2, 5), MID('tutorialgateway', 5, 13);
SELECT OCT(15), OCT(2), OCT(255);

MySQL 字符串 repeat、replace、reverse 函数示例
在此示例中,我们使用 MySQL 的 REPEAT 来重复句子,使用 REPLACE 函数将单词替换为新的子字符串。接下来,我们使用 REVERSE 函数反转给定的句子。
SELECT REPEAT('MySQL', 2), REPEAT('Hello', 5);
SELECT REPLACE('hello', 'l', 'd'), REPLACE('tutorialgateway', 't', 'AA');
SELECT REVERSE('hello'), REVERSE('MySQL'), REVERSE('Suresh');

MySQL RIGHT、RPAD、SOUNDEX 示例 11
在此示例中,我们将使用 RIGHT 函数查找最右边的字符,使用 RPAD 在右侧附加子字符串。接下来,我们使用 SOUNDEX 查找给定文本的 Soundex 值。
SELECT RIGHT('tutorialgateway', 4), RIGHT('tutorialgateway', 10);
SELECT RPAD('MySQL', 10, 'Hello'), RPAD('MySQL', 3, 'Hi');
SELECT SOUNDEX('Hello'), SOUNDEX('MySQL');

在此场景中,我们使用 SPACE 生成空格。接下来,我们使用 MySQL 字符串 SUBSTR 和 SUBSTRING 从给定文本返回子字符串。
SELECT SPACE(5), CONCAT('Learn', SPACE(2), 'MySQL');
SELECT SUBSTR('tutorialgateway', 9), SUBSTR('MySQL Tutorial', 3, 9);
SELECT SUBSTRING('tutorialgateway', 9), SUBSTRING('MySQL Tutorial', 3, 9);

MySQL 字符串 substring、trim、ucase 函数示例
在此示例中,我们使用 MySQL 的 TRIM 移除前导和尾随空格。接下来,UCASE 字符串函数将文本转换为大写,SUBSTRING_INDEX 根据指定分隔符的索引位置返回子字符串。
SELECT SUBSTRING_INDEX('hi,how are,you', ',', 2);
SELECT TRIM(' hi '), TRIM(BOTH 'A' FROM 'AAAAhello worldAAAA');
SELECT UCASE('suREsh'), UCASE('TutoriALgatEway');

在这里,我们使用 UNHEX 字符串函数从十六进制数返回文本。接下来,我们使用 MySQL 的 UPPER 将文本转换为大写。最后的 QUOTE 语句用于跳过或转义特殊字符。
SELECT UNHEX('4869'), UNHEX('255'), UNHEX('4D7953514C');
SELECT UPPER('Hi'), UPPER('HeLlo world'), UPPER('mysql');
SELECT QUOTE('Don\'t Worry!');
