我正在尝试为网站创建搜索功能。 在MySQL中我想完全匹配单词,例如,如果我有几个帖子与这些标题:
某一天
和
即将来临的一天
我有以下搜索字符串:
SELECT title
FROM posts
WHERE title LIKE '%in%'
ORDER BY Date
DESC
它会返回两行,因为LIKE
字词%in%
会显示在第一行的in
和第二行的coming
中。
但我只希望它匹配整个单词,以便只返回第一行。
这可能吗?
答案 0 :(得分:1)
您正在寻找MySQL字边界REGEXP:
SELECT title
FROM posts
WHERE title REGEXP '[[:<:]]in[[:>:]]'
来自MySQL文档:
这些标记代表字边界。它们分别匹配单词的开头和结尾。单词是一系列单词字符,其前面或后面没有单词字符。
答案 1 :(得分:0)
这样做:
SELECT title
FROM posts
WHERE title LIKE '% in %'
ORDER BY Date
DESC
如果这是一个单词,你确定在有问题的单词之前和之后都有空格。