MySQL字符串函数:按关键字截取字符串 substring_index()

今天一位网友向我提出这样一个疑问:

相信大家都知道,mysql有一个字符串函数locate(),但是,经过多次验证,这个方法并不能精准查找;比如:a@fujieace.com。

那么,找出来的必定是很多有类似的数据,例如:aa@fujieace.com,ba@fujieace.com,ca@fujieace.com等。

那么,现在我这个业务场景是这样的:如何根据第一个符号前的数据进行精准的全字匹配,而不会出现类似模糊查询的效果?

 

解决方法

mysql有一个字符串函数可以完美解决我的需求场景,只需要使用该函数SUBSTRING_INDEX()进行制定符号切割,切割后的数值跟我们目标值进行相等比较,即可得出精准查找的结果。

 

语法:

substring_index(str,delim,count)

 

说明:

str:被截取字段

delim:关键字

count:关键字出现的次数

 

str在count出现分隔符 之前 从字符串返回子字符串 delim。如果 count为正,则返回最终分隔符左侧的所有内容(从左侧开始计算)。如果count是否定的,则返回最终分隔符右侧的所有内容(从右侧开始计算)。 SUBSTRING_INDEX()搜索时执行区分大小写的匹配 delim。

 

示例:

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

注:

此功能是多字节安全的。

如果关键字出现的次数是负数,例如-2,则是从后倒数,到字符串结束。

付杰
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 298.0元
  • 市场价:598.0元
  • ¥ 199.0元
  • 市场价:899.0元
  • ¥ 99.0元
  • 市场价:129.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:6   其中:访客  0   博主  0

  1. 头像 wordpress建站吧 1

    这还是比较常用的函数

  2. 头像 创业路上 2

    我定期回访来了

  3. 头像 常州厂房出租 2

    博主好久没有更新了哈

  4. 头像 常州厂房出租 2

    很专业的数据库文章啊