我正在为我的网站开发内部搜索引擎。我有一个"高级搜索"大约有20个标准,我想按相关性对结果进行排序:满足最高标准数量的条目应首先出现。在做了一些研究后,我发现" CASE WHEN"语法会有用,但我不确定我是否使用它。现在我有类似的东西:
select
case when name like "%test%" then 1 else 0 +
case when lastname like "%test%" then 1 else 0 end as nb_criteria
from MyTable1, MyTable2....
这很好用。我的第一栏是" nb_criteria"我只需要相应地订购结果。问题是它只是重新排序我的数据库的所有条目,因此不太相关的结果具有" 0"的值,但它们仍然存在。因此,我必须使用WHERE语句,我认为这将使服务器执行两次相同的任务。
实现这一目标的最佳方法是什么?
由于