MySQL 分隔符分隔字符串操作汇总

MySQL 分隔符分隔字符串操作汇总。

参考文档:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

SUBSTRING

对于所有形式的 SUBSTRING (),要从中提取子字符串的字符串中第一个字符的位置被认为是 1。

可以对函数使用负值 。在这种情况下,子字符串的开头是字符串末尾的字符,而不是开头。

指定位置截取

SUBSTRING (str,pos) 或者 SUBSTRING (str FROM pos)

示例:

mysql> SELECT SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'
mysql> SELECT SUBSTRING('Sakila', -3);
        -> 'ila'

指定长度截取

SUBSTRING (str,pos,len) 或者 SUBSTRING (str FROM pos FOR len)

示例:

mysql> SELECT SUBSTRING('Quadratically',5,6);
        -> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
        -> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
        -> 'ki'

SUBSTRING_INDEX

从指定出现次数的分隔符之前的字符串中返回子字符串。

SUBSTRING_INDEX 函数的格式如下:

SUBSTRING_INDEX(str,delim,count)

从出现分隔符 str 之前的字符串返回子字符串 。

  • 如果是正数,则返回最终分隔符左侧(从左侧算起)的所有内容。
  • 如果为负数,则返回最终分隔符右侧(从右侧开始计数)的所有内容。

搜索时执行区分大小写的匹配 。

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'

SUBSTRING_INDEX () 任何参数是 NULL, 则返回 NULL。

LEFT

LEFT 函数的格式如下:

LEFT(str,len)

返回字符串中最左边 *len的字符str*,或者 NULL 如果任何参数是 NULL

mysql> SELECT LEFT('foobarbar', 5);
        -> 'fooba'

RIGHT 函数的格式如下:

RIGHT(str,len)

返回字符串中最右边 *len* 的字符 *str*,或者 NULL 如果任何参数是 NULL

mysql> SELECT RIGHT('foobarbar', 4);
        -> 'rbar'