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