这就是我的SQL查询的样子:
SELECT
*,
(
10 * MATCH(products.parameters) AGAINST('intel core i5') +
5 * MATCH(products.name) AGAINST('intel core i5') +
MATCH(products.description) AGAINST('intel core i5')
) AS percentage
FROM products
WHERE
(
MATCH(products.name, products.description, products.parameters)
AGAINST('intel core i5' IN BOOLEAN MODE)
) AND percentage > 0
ORDER BY percentage DESC;
当我不使用percentage > 0
时,此全文搜索查询效果很好。它给了我#1054 - Unknown column 'percentage' in 'where clause'
的错误。 percentage
是别名,为什么我无法在where条件下使用它?
注意:我使用的是MariaDB 10.1.13
答案 0 :(得分:2)
您不能在where子句中使用百分比别名,因为where子句是在SQL Server的select子句之前计算的。有关详细信息,请参阅此博客文章:https://www.bennadel.com/blog/70-sql-query-order-of-operations.htm
答案 1 :(得分:0)
该问题的一个解决方案:将WHERE
更改为HAVING
。