目前我有一个 SQL 查询,它查找可接受的匹配项,然后使用以下方法对它们进行排序:
ORDER BY ABS (itemranking - $rating)
是否可以在处理查询时以某种方式修改“项目排名”,以便可以添加如下条件:
if (category == '$category')
项目的 ABS 减 1;
那么ORDER BY ABS
?
我不确定这对于知道正确代码的人来说是否是一个快速的答案,或者它是否是一个更大的概念性“我如何才能实现这个结果”类型的问题。
无论哪种方式,了解一些上下文可能会有所帮助。目标是对一堆提交进行排序,使它们与价值“评级”相匹配,同时也为用户正在寻找的类别中的项目提供提升。
一个现实生活中的例子(不是我的网站):一个购物网站可以提供一个过滤器,在价格方面搜索最接近的匹配项,但表现得好像某个类别(例如“红色”)中的所有项目都比匹配项更接近 10 美元比实际情况。