这是一个返回排名结果大于零的查询。
我仍然得到零分的行,任何人都明白为什么?
SELECT SQL_CALC_FOUND_ROWS P.`Package_ID` as `id`,
P.`name`, P.`description`,
(( ((P.`name` LIKE '%test%' ) *100 * 1 ) +
((P.`name` LIKE '%test%' ) * 1 * 90) +
((P.`name` LIKE '%test%' ) * 20) +
((P.`description` LIKE '%test%' ) * 30 * 1 ) +
((P.`description` LIKE '%test%' ) * 10 *1 ) +
((P.`description` LIKE '%test%' ) * 10) )) AS `score`
FROM `package` P
WHERE
CONVERT(( ((P.`name` LIKE '%test%' ) *100 * 1 ) +
((P.`name` LIKE '%test%' ) * 1 * 90) +
((P.`name` LIKE '%test%' ) * 20) +
((P.`description` LIKE '%test%' ) * 30 * 1 ) +
((P.`description` LIKE '%test%' ) * 10 *1 ) +
((P.`description` LIKE '%test%' ) * 10) ),UNSIGNED) > 0
答案 0 :(得分:-2)
从未发现为什么最终使用了Having子句