MySQL 常用字符串函数

整理 MySQL 字符串拼接、截取、替换、长度计算和大小写转换等常用函数。
功能函数示例结果
字符串长度(字节数)LENGTH(str)LENGTH('Hello')5
字符串长度(字符数)CHAR_LENGTH(str)CHAR_LENGTH('你好')2
转大写UPPER(str)UPPER('hello')HELLO
转小写LOWER(str)LOWER('HELLO')hello
拼接CONCAT(s1, s2, …)CONCAT('Hello',' ','World')Hello World
拼接(带分隔符)CONCAT_WS(sep, s1, s2, …)CONCAT_WS('-', '2025','08','25')2025-08-25
截取字符串SUBSTRING(str, pos, len)SUBSTRING('Hello World', 7, 5)World
去除空格TRIM(str)TRIM(' hi ')hi
去左空格LTRIM(str)LTRIM(' hi')hi
去右空格RTRIM(str)RTRIM('hi ')hi
替换REPLACE(str, from, to)REPLACE('2025-08-25','-','/')2025/08/25
查找位置LOCATE(substr, str)LOCATE('World','Hello World')7
查找位置INSTR(str, substr)INSTR('Hello World','World')7
重复REPEAT(str, n)REPEAT('ab', 3)ababab
左填充LPAD(str, len, pad)LPAD('7', 3, '0')007
右填充RPAD(str, len, pad)RPAD('7', 3, '0')700
反转REVERSE(str)REVERSE('hello')olleh
分隔符截取SUBSTRING_INDEX(str, delim, count)SUBSTRING_INDEX('a,b,c', ',', -1)c

SQL 里的字符串函数非常常用,不同数据库有些差异(MySQL、PostgreSQL、SQL Server、Oracle 等语法略有不同),我先给你列常见的 MySQL 语法,绝大多数数据库都支持类似写法。

常用字符串函数

实用示例

sql
-- 手机号脱敏
SELECT CONCAT(LEFT('13812345678', 3), '****', RIGHT('13812345678', 4));
-- 结果: 138****5678

-- 统计邮箱后缀
SELECT SUBSTRING_INDEX(email, '@', -1) AS domain, COUNT(*) 
FROM users 
GROUP BY domain;
MySQL 事务隔离级别详解
SQL 语句分类:DDL、DML、DQL 与 DCL