我正在尝试为网站创建搜索功能。 在 MySQL 中,我想精确匹配单词,例如,如果我有几篇文章的标题是这样的:
A day in time
和
A coming day
我有以下搜索字符串:
SELECT title
FROM posts
WHERE title LIKE '%in%'
ORDER BY Date
DESC
它将返回两行,因为 LIKE
项 %in%
出现在第一行的 in
和 coming
在第二行。
但我只希望它匹配整个单词,以便只返回第一行。
这可能吗?
最佳答案
您正在寻找 MySQL 字边界 REGEXP:
SELECT title
FROM posts
WHERE title REGEXP '[[:<:]]in[[:>:]]'
来自 MySQL 文档:
这些标记代表单词边界。它们分别匹配单词的开头和结尾。单词是单词字符的序列,前面或后面都没有单词字符。
关于php - 根据 where 子句选择行时,如何匹配完整的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994060/