作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
SELECT
MATCH(`product_name`) AGAINST ('leica' IN BOOLEAN MODE) * 100 AS name,
MATCH(`product_category_name`) AGAINST ('leica' IN BOOLEAN MODE) * 50 AS category,
MATCH(`product_description`) AGAINST ('leica' IN BOOLEAN MODE) * 20 AS description
FROM products
WHERE MATCH (`product_name`, `product_category_name`, `product_description`) AGAINST ('leica' IN BOOLEAN MODE)
ORDER BY (name)+(category)+(description) DESC LIMIT 0, 24
所以除了在一种情况下,这很好用。当产品的名称和描述中都包含“徕卡”时,它就会被推到顶部。我希望描述仅在 product_name 或 product_category 不匹配时才考虑在内。我正在考虑将 * -5 添加到某些内容中,但我无法弄清楚如何在没有某种 IF 子句的情况下获得准确的数字来更正描述中出现的内容。
最佳答案
不要添加值,将它们用作单独的值以按以下方式排序:
ORDER BY name DESC, category DESC, description DESC
那么您也不需要乘数。
关于mysql - 尝试更正 MATCH ... AGAINST 的最佳结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307953/
我是一名优秀的程序员,十分优秀!