在 MySQL 中,常用的字符串操作函数可以分为 截取、修改、查找、拼接、格式化 等类别。以下是常见的字符串函数及其用法:
📌 1. 截取字符串
1.1 LEFT()
- 从左侧截取字符
SELECT LEFT('HelloWorld', 5); -- 结果: 'Hello'
- 提取字符串
HelloWorld
的前 5 个字符。
1.2 RIGHT()
- 从右侧截取字符
SELECT RIGHT('HelloWorld', 5); -- 结果: 'World'
- 提取
HelloWorld
的最后 5 个字符。
1.3 SUBSTRING()
- 截取任意部分
SELECT SUBSTRING('HelloWorld', 2, 4); -- 结果: 'ello'
- 从第 2 个字符开始,截取 4 个字符。
SELECT SUBSTRING('HelloWorld' FROM 6); -- 结果: 'World'
- 从第 6 个字符开始,截取剩余部分。
1.4 MID()
- SUBSTRING()
的别名
SELECT MID('HelloWorld', 2, 4); -- 结果: 'ello'
- 功能和
SUBSTRING()
相同。
📌 2. 修改字符串
2.1 UPPER()
- 转换为大写
SELECT UPPER('hello'); -- 结果: 'HELLO'
2.2 LOWER()
- 转换为小写
SELECT LOWER('HELLO'); -- 结果: 'hello'
2.3 LTRIM()
- 去除左侧空格
SELECT LTRIM(' hello'); -- 结果: 'hello'
2.4 RTRIM()
- 去除右侧空格
SELECT RTRIM('hello '); -- 结果: 'hello'
2.5 TRIM()
- 去除两侧空格
SELECT TRIM(' hello '); -- 结果: 'hello'
2.6 REPLACE()
- 替换字符串
SELECT REPLACE('Hello World', 'World', 'MySQL'); -- 结果: 'Hello MySQL'
- 将
World
替换为MySQL
。
2.7 REPEAT()
- 重复字符串
SELECT REPEAT('Hi', 3); -- 结果: 'HiHiHi'
📌 3. 查找字符串
3.1 LENGTH()
- 计算字节长度
SELECT LENGTH('你好'); -- 结果: 6
LENGTH()
按 字节 计算长度(中文字符占 3 个字节)。
3.2 CHAR_LENGTH()
- 计算字符个数
SELECT CHAR_LENGTH('你好'); -- 结果: 2
CHAR_LENGTH()
计算的是 字符 数,而不是字节。
3.3 LOCATE()
- 查找子字符串位置
SELECT LOCATE('o', 'HelloWorld'); -- 结果: 5
- 查找
o
在HelloWorld
中的 第一次 出现位置(从 1 开始)。
SELECT LOCATE('World', 'HelloWorld'); -- 结果: 6
World
在HelloWorld
的位置是6
。
3.4 POSITION()
- 功能类似 LOCATE()
SELECT POSITION('o' IN 'HelloWorld'); -- 结果: 5
📌 4. 拼接字符串
4.1 CONCAT()
- 连接多个字符串
SELECT CONCAT('Hello', ' ', 'World'); -- 结果: 'Hello World'
4.2 CONCAT_WS()
- 连接多个字符串,带分隔符
SELECT CONCAT_WS('-', '2024', '02', '10'); -- 结果: '2024-02-10'
CONCAT_WS()
的 第一个参数是分隔符,后面的字符串用该符号连接。
📌 5. 其他字符串操作
5.1 REVERSE()
- 反转字符串
SELECT REVERSE('Hello'); -- 结果: 'olleH'
5.2 FORMAT()
- 格式化数字
SELECT FORMAT(1234.5678, 2); -- 结果: '1,234.57'
FORMAT(数字, 小数位数)
,自动 四舍五入 并添加 千分位 逗号。
5.3 SPACE()
- 生成空格
SELECT CONCAT('Hello', SPACE(5), 'World'); -- 结果: 'Hello World'
SPACE(5)
生成 5 个空格。