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)