SUBSTRING_INDEX() 是 MySQL 中一个非常实用且强大的字符串处理函数。它的主要作用是根据指定的分隔符来截取字符串的一部分。
SUBSTRING_INDEX(str, delim, count)
参数解释:
- str:要处理的原始字符串。
- delim:分隔符。函数会根据这个字符串来分割原始字符串。
- count:指定要返回的部分。
如果 count 是正数,函数将从字符串左边(开头)开始数,返回第 count 个分隔符左边的所有内容。
如果 count 是负数,函数将从字符串右边(末尾)开始数,返回第 count 个分隔符右边的所有内容。
核心思想:这个函数可以帮你轻松地提取出域名、文件名、路径中的特定部分等。
我们这里可以用来删除特定的内容,举例:下面是评论内容字段中存储的数据。
我是文档内容AAA。<blockquote>我是文档内容BBB。</blockquote>
假如我想删除 <blockquote> 及其后面的内容,只保留前面的内容。
UPDATE `table_name`
SET `field_name` = SUBSTRING_INDEX(`field_name`, '<blockquote>', 1)
WHERE `field_name` LIKE '%<blockquote>%';
// table_name 表名称
// field_name 字段名
这样,我就删掉了 <blockquote> 及其后面的内容,只保留前面的了。
我是文档内容AAA。
SUBSTRING_INDEX()函数,还有很多用途。
从电子邮件地址中提取域名
假设我们有一个电子邮件地址 user@example.com
,我们想提取出域名 example.com
。
SELECT SUBSTRING_INDEX('user@example.com', '@', -1) AS domain;
解释: 使用 @ 作为分隔符,从右边开始取第一个 @ 之后的部分。
还可以这么会用,学习到了。