SUBSTRING(s, n, len) 函数用来获取指定字符串中的一个子字符串。
如果 SUBSTRING 函数带有 len 参数,将从 s 字符串的 n 位置开始,返回一个长度为 len 的子字符串。
如果 n 值是一个负值,则子字符串的位置起始于字符串结尾的第 n 个字符,即倒数第 n 个字符,而不是字符串的开头位置。
(1)使用 SUBSTRING 函数,从字符串“0123456789”的起始位置 2 开始,返回长度为 5 的子字符串。如下:
mysql> select SUBSTRING('0123456789', 2, 5); +-------------------------------+ | SUBSTRING('0123456789', 2, 5) | +-------------------------------+ | 12345 | +-------------------------------+ 1 row in set (0.04 sec)
(2)使用 SUBSTRING 函数,从字符串“0123456789”的起始位置 5 开始,返回到字符串结尾的子字符串。如下:
mysql> select SUBSTRING('0123456789', 5); +----------------------------+ | SUBSTRING('0123456789', 5) | +----------------------------+ | 456789 | +----------------------------+ 1 row in set (0.05 sec)
由运行结果可知,上面返回了字符串“0123456789”从位置 5 到结尾的子字符串“456789”。
(3)使用 SUBSTRING 函数,从字符串“0123456789”从右向左3的位置开始,返回到结尾的子字符串。如下:
mysql> select SUBSTRING('0123456789', -3); +-----------------------------+ | SUBSTRING('0123456789', -3) | +-----------------------------+ | 789 | +-----------------------------+ 1 row in set (0.09 sec)
由运行结果可知,上面返回了字符串“0123456789”从倒数3的位置,返回到结尾的子字符串“789”。
(4)使用 SUBSTRING 函数,从字符串“0123456789”从倒数3的位置开始,返回一个长度为2的子字符串。如下:
mysql> select SUBSTRING('0123456789', -3, 2); +--------------------------------+ | SUBSTRING('0123456789', -3, 2) | +--------------------------------+ | 78 | +--------------------------------+ 1 row in set (0.13 sec)