【发布时间】:2013-10-01 02:25:30
【问题描述】:
我正在比较类似查询的结果
SELECT * FROM object_search
WHERE
keywords LIKE '%,woman,%'
AND keywords LIKE '%,man,%'
到
SELECT * FROM object_search
WHERE
MATCH (keywords) AGAINST ('+(",woman,") +(",man,")')
我本来希望得到完全相同的结果,但第一个查询输出了大约 300 个结果,而第二个查询输出了接近 3000 个结果。
两者之间有什么区别?如何使用全文功能获得相同的结果?
【问题讨论】:
-
你能提供你的表结构吗?还有一些在第二种情况下返回的行,但不是在第一种情况下。
-
@AlmaDoMundo 似乎
MATCH AGAINST查询只需要两个关键字之一连续出现。它也是一个 InnoDB 表。 -
我的猜测是因为
man是woman的子词,所以它与您的woman和man词有关(但它似乎不应该这样工作)。改用foo和bar之类的方法 - 即不相交 -
@AlmaDoMundo 与
car和house仍然相同。
标签: mysql sql search full-text-search sql-like