国内大型网站域名海南网站建设
SQL字符串截取函数——Left()、Right()、Substring()用法详解
1. LEFT() 函数:从字符串的左侧提取指定长度的子字符串。
 

LEFT(string, length)
 
string:要操作的字符串。length:从左侧提取的字符数量。
Demo🎈🎈🎈🎈:
SELECT LEFT('Hello 2025', 5) AS result; 
-- 返回值: 'Hello'
 

Tips🎈🎈🎈🎈:
- 如果 
length超过字符串长度,返回整个字符串。 

- 如果 
length为 0,则返回空字符串。 

2. RIGHT() 函数:从字符串的右侧提取指定长度的子字符串。
 
RIGHT(string, length)
 
string:要操作的字符串。length:从右侧提取的字符数量。
Demo🎈🎈🎈🎈:

Tips🎈🎈🎈🎈:
- 如果 
length超过字符串长度,返回整个字符串。 

- 如果 
length为 0,则返回空字符串。 

3. SUBSTRING() 函数:从字符串的任意位置开始提取指定长度的子字符串。
 
SUBSTRING(string, start, length)
 
string:要操作的字符串。start:子字符串开始的位置(1 表示字符串的第一个字符)。length:提取的字符数量。
Demo🎈🎈🎈🎈:

 Tips🎈🎈🎈🎈:
- 如果 
start超过字符串长度,返回空字符串。 

- 如果 
start + length超过字符串长度,提取到末尾。 

- 在某些数据库中(如 SQL Server),
start从 1 开始;在 MySQL 中,从 1 开始的默认行为相同。 
| 函数 | 作用 | 典型场景 | 
|---|---|---|
LEFT() | 从左提取指定字符数 | 提取固定长度的前缀,如前 3 位日期年 '2023-12-01' -> 2023 | 
RIGHT() | 从右提取指定字符数 | 提取固定长度的后缀,如文件扩展名 'file.txt' -> txt | 
SUBSTRING() | 从任意位置提取指定字符数 | 提取动态范围的字符串,如获取身份证中间 6 位 | 
Demo🎈🎈🎈🎈:
| name | phone | 
|---|---|
| John Doe | 1234567890 | 
| Alice Smith | 9876543210 | 
| Bob Johnson | 5556667777 | 
- (1)提取姓名的前 4 个字符
 
SELECT name, LEFT(name, 4) AS short_name
FROM employees;
 
| name | short_name | 
|---|---|
| John Doe | John | 
| Alice Smith | Alic | 
| Bob Johnson | Bob | 
- (2)提取电话号码的后 4 位
 
SELECT phone, RIGHT(phone, 4) AS last_digits
FROM employees;
 
| phone | last_digits | 
|---|---|
| 1234567890 | 7890 | 
| 9876543210 | 3210 | 
| 5556667777 | 7777 | 
- (3) 提取名字的第 2 到第 5 个字符
 
SELECT name, SUBSTRING(name, 2, 4) AS middle_name_part
FROM employees;
 
| name | middle_name_part | 
|---|---|
| John Doe | ohn | 
| Alice Smith | lice | 
| Bob Johnson | ob J | 
