如何在 MySQL 中从字符串中提取子字符串?

mysqlmysqli database更新于 2025/5/22 18:52:17

MySQL SUBSTRING() 函数可用于从字符串中提取子字符串。基本上,SUBSTRING() 从字符串的特定位置开始返回具有给定长度的子字符串。它有多种形式,如下所示 −

  • SUBSTRING(str,pos)
  • SUBSTRING(str FROM pos)
  • SUBSTRING(str,pos,len)
  • SUBSTRING(str FROM pos FOR len)

不带 len 参数的形式从字符串 str 返回从位置 pos 开始的子字符串。带有 len 参数的形式从字符串 str 返回从位置 pos 开始的长度为 len 个字符的子字符串。使用 FROM 的形式是标准的 MySQL 语法。也可以对 pos 使用负值。在这种情况下,子字符串的开头是距字符串末尾 pos 个字符,而不是开头。在此函数的任何形式中,pos 都可以使用负值。

mysql> SELECT SUBSTRING('Quadratically',5);
+---------------------------------------------------------+
| SSUBSTRING('Quadratically',5)                           |
+---------------------------------------------------------+
| ratically                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING('foobarbar' FROM 4);
+---------------------------------------------------------+
| SUBSTRING('foobarbar' FROM 4)                           |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING('Quadratically',5,6);
+---------------------------------------------------------+
| SUBSTRING('Quadratically',5,6)                          |
+---------------------------------------------------------+
| ratica                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> Select SUBSTRING('foobarbar',-4);
+---------------------------+
| SUBSTRING('foobarbar',-4) |
+---------------------------+
| rbar                      |
+---------------------------+
1 row in set (0.05 sec)

除了 SUBSTRING() 函数外,MID() 和 SUBSTR() 函数也用于从字符串中提取子字符串。它们都是 SUBSTRING() 函数的同义词。


相关文章


有用资源