【发布时间】:2017-10-24 11:47:57
【问题描述】:
我今天在使用 mysqls MATCH()...AGAINST() 时遇到了问题。
因为我想解决我的问题可能更容易,所以我创建了一个小的 SQLFiddle。
我完全理解,为什么“Foo Bar Foo”在此 Select 语句的工作方式上比“Foo Bar”更相关。但我想要的是“完全匹配”术语的相关性高于“完全匹配和更多”术语。
title relevance
Foo Bar 0.046829063445329666
Foo Bar Foo 0.031219376251101494
Foo 0
Bar 0
如果不使用“union”来组合两个语句,是否可以得到这个结果?
答案(感谢 Gordon Linoff):
SELECT *
FROM FOOBAR
WHERE title LIKE '%Foo Bar%'
ORDER BY (CASE WHEN title LIKE 'Foo Bar%' THEN 1 ELSE 0 end) DESC,
MATCH (title) AGAINST ('Foo Bar' IN BOOLEAN MODE) ASC
【问题讨论】:
标签: mysql match match-against against