目录
- 所有函数
 - 1、字符串属性
 
- ASCII
 - CHAR_LENGTH / CHARACTER_LENGTH
 - LENGTH
 
- 2、字符串查找
 
- FIELD
 - FIND_IN_SET
 - INSTR
 - LOCATE
 - POSITION
 
- 3、字符串替换
 
- INSERT
 - REPLACE
 
- 4、字符串处理
 
- CONCAT
 - CONCAT_WS
 - FORMAT
 - LCASE / LOWER
 - UCASE / UPPER
 - LPAD
 - RPAD
 - LTRIM
 - RTRIM
 - TRIM
 - REPEAT
 - REVERSE
 - SPACE
 - STRCMP
 
- 5、字符串截取
 
- LEFT
 - RIGHT
 - MID
 - SUBSTR
 - SUBSTRING
 - SUBSTRING_INDEX
 
- 参考文章
 
 
所有函数
函数  | 描述  | 
ASCII  | 返回特定字符的 ASCII 值  | 
CHAR_LENGTH / CHARACTER_LENGTH  | 返回字符串的长度(以字符为单位)  | 
LENGTH  | 返回字符串的长度(以字节为单位)  | 
CONCAT  | 将两个或多个表达式加在一起  | 
CONCAT_WS  | 使用分隔符将两个或多个表达式添加在一起  | 
FIELD  | 返回值在值列表中的索引位置  | 
FIND_IN_SET  | 返回字符串在字符串列表中的位置  | 
INSERT  | 在字符串中的指定位置插入字符串,并插入一定数量的字符  | 
INSTR  | 返回一个字符串在另一个字符串中第一次出现的位置  | 
LOCATE  | 返回字符串中子字符串第一次出现的位置  | 
POSITION  | 返回字符串中子字符串第一次出现的位置  | 
LPAD  | 用另一个字符串向左填充一个字符串,达到一定的长度  | 
RPAD  | 用另一个字符串右填充一个字符串到一定长度  | 
LTRIM  | 从字符串中删除前导空格  | 
RTRIM  | 从字符串中删除尾随空格  | 
TRIM  | 从字符串中删除前导和尾随空格  | 
REPEAT  | 按照指定的次数重复一个字符串  | 
REPLACE  | 用新的子字符串替换字符串中所有出现的子字符串  | 
REVERSE  | 反转一个字符串并返回结果  | 
SPACE  | 返回指定空格数的字符串  | 
STRCMP  | 比较两个字符串  | 
LEFT  | 从字符串中提取多个字符(从左开始)  | 
RIGHT  | 从字符串中提取多个字符(从右开始)  | 
MID / SUBSTR / SUBSTRING  | 从字符串中提取子字符串(从任意位置开始)  | 
SUBSTRING_INDEX  | 在出现指定数量的分隔符之前返回字符串的子字符串  | 
LCASE / LOWER  | 将字符串转换为小写  | 
UCASE / UPPER  | 将字符串转换为大写  | 
FORMAT  | 将数字格式化为类似"#,###,###.##"的格式,四舍五入到指定的小数位数  | 
1、字符串属性
ASCII
返回特定字符的 ASCII 值
语法
ASCII(character)mysql> SELECT ASCII("A");
+------------+
| ASCII("A") |
+------------+
|         65 |
+------------+CHAR_LENGTH / CHARACTER_LENGTH
返回字符串的长度(以字符为单位)
语法
CHAR_LENGTH(string)mysql> SELECT CHAR_LENGTH("你好");
+-----------------------+
| CHAR_LENGTH("你好")   |
+-----------------------+
|                     2 |
+-----------------------+
mysql> SELECT CHARACTER_LENGTH("你好");
+----------------------------+
| CHARACTER_LENGTH("你好")   |
+----------------------------+
|                          2 |
+----------------------------+
mysql> SELECT CHAR_LENGTH("hello");
+----------------------+
| CHAR_LENGTH("hello") |
+----------------------+
|                    5 |
+----------------------+LENGTH
返回字符串的长度(以字节为单位)
语法
LENGTH(string)mysql> SELECT LENGTH("你好");
+------------------+
| LENGTH("你好")   |
+------------------+
|                6 |
+------------------+
mysql> SELECT LENGTH("hello");
+-----------------+
| LENGTH("hello") |
+-----------------+
|               5 |
+-----------------+2、字符串查找
FIELD
返回值在值列表中的索引位置
语法
FIELD(value, val1, val2, val3, ...)mysql> SELECT FIELD("b", "a", "b", "c");
+---------------------------+
| FIELD("b", "a", "b", "c") |
+---------------------------+
|                         2 |
+---------------------------+FIND_IN_SET
返回字符串在字符串列表(逗号分隔)中的位置
语法
FIND_IN_SET(string, string_list)mysql> SELECT FIND_IN_SET("b", "a,b,c");
+---------------------------+
| FIND_IN_SET("b", "a,b,c") |
+---------------------------+
|                         2 |
+---------------------------+INSTR
返回一个字符串在另一个字符串中第一次出现的位置,不区分大小写
语法
INSTR(string, substring)mysql> SELECT INSTR("hello world", "world");
+-------------------------------+
| INSTR("hello world", "world") |
+-------------------------------+
|                             7 |
+-------------------------------+LOCATE
返回字符串中子字符串第一次出现的位置,不区分大小写,找不到子字符串返回 0
语法
LOCATE(substring, string, start=1)mysql> SELECT LOCATE("world", "hello world", 1);
+-----------------------------------+
| LOCATE("world", "hello world", 1) |
+-----------------------------------+
|                                 7 |
+-----------------------------------+POSITION
返回字符串中子字符串第一次出现的位置,不区分大小写,找不到子字符串返回 0
语法
POSITION(substring IN string)mysql> SELECT POSITION("world" IN "hello world");
+------------------------------------+
| POSITION("world" IN "hello world") |
+------------------------------------+
|                                  7 |
+------------------------------------+3、字符串替换
INSERT
在字符串中的指定位置替换字符
语法
INSERT(string, position, number, string2)-- 将 worl 替换为 man
mysql> SELECT INSERT("hello world", 7, 4, "man");
+------------------------------------+
| INSERT("hello world", 7, 4, "man") |
+------------------------------------+
| hello mand                         |
+------------------------------------+REPLACE
将字符串中所有出现的子字符串替换为新的子字符串,区分大小写
语法
REPLACE(string, from_string, new_string)mysql> SELECT REPLACE("hello", "e", "a");
+----------------------------+
| REPLACE("hello", "e", "a") |
+----------------------------+
| hallo                      |
+----------------------------+4、字符串处理
CONCAT
将两个或多个表达式相加
语法
CONCAT(expression1, expression2, expression3,...)mysql> SELECT CONCAT("你好", "SQL", "世界");
+-----------------------------------+
| CONCAT("你好", "SQL", "世界")     |
+-----------------------------------+
| 你好SQL世界                       |
+-----------------------------------+CONCAT_WS
将两个或多个表达式与分隔符相加
语法
CONCAT_WS(separator, expression1, expression2, expression3,...)mysql> SELECT CONCAT_WS("-", "你好", "SQL", "世界");
+-------------------------------------------+
| CONCAT_WS("-", "你好", "SQL", "世界")     |
+-------------------------------------------+
| 你好-SQL-世界                             |
+-------------------------------------------+FORMAT
将数字四舍五入到指定的小数位数,然后将结果作为字符串返回。
语法
FORMAT(number, decimal_places)mysql> SELECT FORMAT(250500.5634, 1);
+------------------------+
| FORMAT(250500.5634, 1) |
+------------------------+
| 250,500.6              |
+------------------------+LCASE / LOWER
将字符串转换为小写
语法
LCASE(text)mysql> SELECT LCASE("HELLO");
+----------------+
| LCASE("HELLO") |
+----------------+
| hello          |
+----------------+
mysql> SELECT LOWER("HELLO");
+----------------+
| LOWER("HELLO") |
+----------------+
| hello          |
+----------------+UCASE / UPPER
将字符串转换为大写
语法
UCASE(text)
UPPER(text)mysql> SELECT UCASE("hello");
+----------------+
| UCASE("hello") |
+----------------+
| HELLO          |
+----------------+
mysql> SELECT UPPER("hello");
+----------------+
| UPPER("hello") |
+----------------+
| HELLO          |
+----------------+LPAD
用另一个字符串向左填充一个字符串,达到一定的长度。
语法
LPAD(string, length, lpad_string)mysql> SELECT LPAD("hello", 20, "x");
+------------------------+
| LPAD("hello", 20, "x") |
+------------------------+
| xxxxxxxxxxxxxxxhello   |
+------------------------+RPAD
将一个字符串与另一个字符串右填充到一定长度。
语法
RPAD(string, length, rpad_string)mysql> SELECT RPAD("hello", 20, "x");
+------------------------+
| RPAD("hello", 20, "x") |
+------------------------+
| helloxxxxxxxxxxxxxxx   |
+------------------------+LTRIM
从字符串中删除前导空格
语法
LTRIM(string)mysql> SELECT LTRIM("  hello  ");
+--------------------+
| LTRIM("  hello  ") |
+--------------------+
| hello              |
+--------------------+RTRIM
从字符串中删除尾随空格
语法
RTRIM(string)mysql> SELECT RTRIM("  hello  ");
+--------------------+
| RTRIM("  hello  ") |
+--------------------+
|   hello            |
+--------------------+TRIM
从字符串中删除前导和尾随空格
语法
TRIM(string)mysql> SELECT TRIM("  hello  ");
+-------------------+
| TRIM("  hello  ") |
+-------------------+
| hello             |
+-------------------+REPEAT
将字符串重复指定的次数
语法
REPEAT(string, number)mysql> SELECT REPEAT("hello", 3);
+--------------------+
| REPEAT("hello", 3) |
+--------------------+
| hellohellohello    |
+--------------------+REVERSE
反转字符串并返回结果
语法
REVERSE(string)mysql> SELECT REVERSE("hello");
+------------------+
| REVERSE("hello") |
+------------------+
| olleh            |
+------------------+SPACE
返回指定数量的空格字符的字符串
语法
SPACE(number)mysql> SELECT SPACE(10);
+------------+
| SPACE(10)  |
+------------+
|            |
+------------+STRCMP
比较两个字符串
语法
STRCMP(string1, string2)- 如果 string1 = string2,这个函数返回0
 - 如果 string1 < string2,这个函数返回-1
 - 如果 string1 > string2,这个函数返回1
 
mysql> SELECT STRCMP("hello", "world");
+--------------------------+
| STRCMP("hello", "world") |
+--------------------------+
|                       -1 |
+--------------------------+5、字符串截取
LEFT
从字符串中提取多个字符(从左开始)
语法
LEFT(string, number_of_chars)mysql> SELECT LEFT("hello world", 5);
+------------------------+
| LEFT("hello world", 5) |
+------------------------+
| hello                  |
+------------------------+RIGHT
从字符串中提取多个字符(从右开始)
语法
RIGHT(string, number_of_chars)mysql> SELECT RIGHT("hello world", 5);
+-------------------------+
| RIGHT("hello world", 5) |
+-------------------------+
| world                   |
+-------------------------+MID
从字符串中提取子字符串(从任意位置开始)
语法
MID(string, start, length)- start 可以是正数或负数
 
- 正数,从字符串的开头提取
 - 负数,从字符串的末尾提取
 
mysql> SELECT MID("hello world", 7, 5);
+--------------------------+
| MID("hello world", 7, 5) |
+--------------------------+
| world                    |
+--------------------------+SUBSTR
从字符串中提取子字符串(从任意位置开始)
语法
SUBSTR(string, start[, length])
SUBSTR(string FROM start FOR length)- start 可以是正数或负数
 
- 正数,从字符串的开头提取
 - 负数,从字符串的末尾提取
 
mysql> SELECT SUBSTR("hello world", 7);
+--------------------------+
| SUBSTR("hello world", 7) |
+--------------------------+
| world                    |
+--------------------------+SUBSTRING
从字符串中提取子字符串(从任意位置开始)
语法
SUBSTRING(string, start[, length])
SUBSTRING(string FROM start FOR length)- start 可以是正数或负数
 
- 正数,从字符串的开头提取
 - 负数,从字符串的末尾提取
 
mysql> SELECT SUBSTRING("hello world", 7);
+-----------------------------+
| SUBSTRING("hello world", 7) |
+-----------------------------+
| world                       |
+-----------------------------+SUBSTRING_INDEX
返回一个字符串在出现指定数量的分隔符之前的子字符串
语法
SUBSTRING_INDEX(string, delimiter, number)- number 可以是正数或负数
 
- 正数,返回所有到delimiter分隔符的左边
 - 负数,返回delimiter分隔符右边的所有
 
-- number 取值正数
mysql> SELECT SUBSTRING_INDEX("www.baidu.com", ".", 2);
+------------------------------------------+
| SUBSTRING_INDEX("www.baidu.com", ".", 2) |
+------------------------------------------+
| www.baidu                                |
+------------------------------------------+
-- number 取值负数
mysql> SELECT SUBSTRING_INDEX("www.baidu.com", ".", -1);
+-------------------------------------------+
| SUBSTRING_INDEX("www.baidu.com", ".", -1) |
+-------------------------------------------+
| com                                       |
+-------------------------------------------+参考文章
- https://www.w3schools.cn/sql/sql_ref_mysql.html
 
                










