我有一个复杂的查询,需要在多个列之间进行多次匹配,然后按相关性排序。
一切都很好,直到我添加了WHERE 'rank' > 0
。
这时就返回一个空结果集。
如果我删除'WHERE'语句,那么我可以看到所有最高匹配结果在顶部。
能否有人帮我解决'WHERE'问题 :-D 我错在哪里了!
SELECT *, CASE WHEN companyName = 'gfdgfs' THEN 2 ELSE 0 END
+ CASE WHEN companyName LIKE '%gfdgfs%' THEN 1 ELSE 0 END
+ CASE WHEN companyName = 'potato' THEN 2 ELSE 0 END
+ CASE WHEN companyName LIKE '%potato%' THEN 1 ELSE 0 END
+ CASE WHEN address1 = 'gfdgfs' THEN 2 ELSE 0 END
+ CASE WHEN address1 LIKE '%gfdgfs%' THEN 1 ELSE 0 END
+ CASE WHEN address1 = 'potato' THEN 2 ELSE 0 END
+ CASE WHEN address1 LIKE '%potato%' THEN 1 ELSE 0 END
AS rank
FROM clients
WHERE rank > 0
ORDER BY rank
编辑
我去掉了rank
一词周围的单引号,现在出现了“where子句中未知列rank”的错误。
Rank
中的单引号并尝试。 - MusicLovingIndianGirlWHERE
子句-请查看https://dev59.com/WHVC5IYBdhLWcg3wvTxa - MusicLovingIndianGirl