Sql - 按条件数量顺序排序

时间:2017-03-30 08:35:31

标签: mysql sql

假设我的查询包含OR关系中的多个条件,如下所示:

SELECT * FROM TABLE WHERE (c1) OR (c2) OR (c3) OR ...

我不希望根据他们满足的条件数来排序结果。这意味着满足c1和c2和c3的记录首先显示(3个条件),然后记录满足c1和c2,或c1和c3 ,或c2和c3(2个条件)以及满足c1或c2或c3的最终记录

1 个答案:

答案 0 :(得分:5)

制作一个如下所示的表达式:

( CASE WHEN c1 THEN 1 ELSE 0 END
+ CASE WHEN c2 THEN 1 ELSE 0 END
+ CASE WHEN c3 THEN 1 ELSE 0 END)

它将为您提供当前记录满足的条件数。