【发布时间】:2021-09-01 19:46:14
【问题描述】:
有没有办法从 MySQL LIKE 查询中返回匹配的完整子字符串。我的意思
SELECT `title` FROM `search_index` WHERE (`title` LIKE '%inno%')
它返回一堆匹配的记录。
标题看起来像Innovative Technology
比提取的标题只返回Innovative 匹配?
【问题讨论】:
有没有办法从 MySQL LIKE 查询中返回匹配的完整子字符串。我的意思
SELECT `title` FROM `search_index` WHERE (`title` LIKE '%inno%')
它返回一堆匹配的记录。
标题看起来像Innovative Technology
比提取的标题只返回Innovative 匹配?
【问题讨论】:
MySQL 的 LIKE 运算符并不适合检测字符串中的单个单词。但是支持正则表达式的 REGEXP 可以处理这个问题。考虑以下查询:
SELECT title FROM search_index WHERE title REGEXP '[[:<:]]inno[[:>:]]';
【讨论】:
你可以使用正则表达式:
select regexp_substr('Innovative Technology', '[a-zA-Z]*inno[a-zA-Z]*')
【讨论】: