MySQL提供了多种字符串函数来处理和截取字符串。下面是一些常用的字符串截取函数及其使用示范:
-
SUBSTRING(str, pos, len)
str
是要截取的字符串。pos
是开始截取的位置。len
是截取的长度。
示例:
SELECT SUBSTRING('Hello, World!', 8, 5); -- 结果: "World"
LEFT(str, len)
返回字符串左边的len个字符。
示例:
SELECT LEFT('Hello, World!', 5); -- 结果: "Hello"
RIGHT(str, len)
返回字符串右边的len个字符。
示例:
SELECT RIGHT('Hello, World!', 5); -- 结果: "World"
MID(str, pos, len)
在某些数据库系统中,如SQL Server,用于截取字符串的函数是MID。其用法与SUBSTRING相似。
示例:
SELECT MID('Hello, World!', 8, 5); -- 结果: "World"
LOCATE(substr, str)
返回子字符串substr在字符串str中首次出现的位置。如果未找到,则返回0。
示例:
SELECT LOCATE('World', 'Hello, World!'); -- 结果: 8
INSTR(str, substr)
返回子字符串substr在字符串str中首次出现的位置,从1开始计数。如果未找到,则返回0。与LOCATE函数类似,但参数顺序不同。
示例:
SELECT INSTR('Hello, World!', 'World'); -- 结果: 8
CHAR_LENGTH(str) 或 CHARACTER_LENGTH(str)
返回字符串的长度。对于多字节字符集(如UTF-8),这可能不同于字节的数量。
示例:
SELECT CHAR_LENGTH('Hello, World!'); -- 结果: 13 (字符数)
LENGTH(str)
返回字符串的字节长度。对于多字节字符集,它返回的是字节数,而不是字符数。
示例:
SELECT LENGTH('Hello, World!'); -- 结果: 12 (字节数) 对于UTF-8编码,'W'和'o'等可能需要多个字节。
REVERSE(str)
返回字符串的反向副本。
示例:
SELECT REVERSE('Hello, World!'); -- 结果: "!dlroW ,olleH"