函数 | 描述 |
---|---|
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 |
+-------------------------------------------+