【发布时间】:2015-08-28 18:22:18
【问题描述】:
我想升级我当前的 SQL 搜索查询:
SELECT * FROM aab_movies WHERE title LIKE '%the walking%'
对于一个经过优化的搜索查询,如下所示:
SELECT * FROM aab_movies WHERE MATCH(title) AGAINST('+the +walking' IN BOOLEAN MODE)
两个查询都可以工作,但“很好”优化的查询有一个问题。这不是检索正确的数据。每当我搜索步行时,我只想要开始或包含“步行”的项目。现在它会检索包括“the”和“walking”在内的所有内容(单元格中每个单词的一种分隔)。
谁能解释/帮助我达到我想要的结果?将不胜感激!
简而言之:我想检索以 OR 开头的数据,它包含给定的(整个)字符串(而不是将每个单词分开,然后将它们与给定的字符串进行比较)。
【问题讨论】:
-
将值放在引号中。
-
@chris85 我该如何处理多个值?
-
没错。 match(title) against('the walk' IN BOOLEAN MODE)
-
dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html
'"some words"'- “查找包含确切短语“某些词”的行(例如,包含“一些智慧词”但不包含“一些干扰词”的行)。” -
@jkavalik 我已经读过了,但是在搜索“The Walking”时,我如何找到另一个值,例如“Walking the way off”?
标签: php mysql full-text-search wildcard sql-like