MySql,在BOOLEAN模式下搜索具有两个关键字的列


MySql, search columns that have two keywords in BOOLEAN MODE

我为我的网站制作了一个搜索系统。

假设数据库中有5个数据。

  1. 苹果macbook空气评论
  2. 苹果iMac评论
  3. 苹果iPhone评论
  4. iPhone 4开箱评论
  5. iPhone越狱评论

用户在搜索输入上键入"iphone评论"。

我想像这个一样显示结果

  1. 苹果iPhone评论
  2. iPhone4开箱评论
  3. iPhone越狱评论

我可以成功地打破搜索词和使用布尔模式。

SELECT * FROM BOOKMARK WHERE MATCH title AGAINST ('iphone* review*' IN BOOLEAN MODE)

但它不会像上面那样显示结果。

它搜索带有iphone或评论词的数据。

你能帮我解决这个问题吗?

您必须在单词前面使用+符号,以确保它出现在每个命中中。

SELECT * FROM BOOKMARK WHERE MATCH title AGAINST ('+iphone +review' IN BOOLEAN MODE)

有关更多信息,请参阅手册

您可以尝试以下查询:

SELECT * FROM BOOKMARK WHERE MATCH title AGAINST ('"iphone review"' IN BOOLEAN MODE)

这个对我有用。