1

我正在尝试为网站创建搜索功能。在 MySQL 中,我想完全匹配单词,例如,如果我有几篇带有这些标题的帖子:

一天时间

即将到来的一天

我有以下搜索字符串:

SELECT title
        FROM posts
        WHERE title LIKE '%in%'
        ORDER BY Date
        DESC

它将返回两行,因为该LIKE术语%in%同时in出现在第一行和 coming第二行中。

但我只希望它匹配整个单词,以便只返回第一行。

这可能吗?

4

2 回答 2

1

您正在寻找 MySQL 单词边界 REGEXP:

SELECT title
  FROM posts
  WHERE title REGEXP '[[:<:]]in[[:>:]]'

来自 MySQL 文档:

这些标记代表单词边界。它们分别匹配单词的开头和结尾。单词是前面或后面没有单词字符的单词字符序列。

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

于 2013-04-13T23:33:17.170 回答
0

这样做:

SELECT title
    FROM posts
    WHERE title LIKE '% in %'
    ORDER BY Date
    DESC

如果它是一个词,你肯定有问题的词前后有空格。

于 2013-04-13T23:29:20.273 回答