次のクエリを実行すると
select * from table where c2 = 11 or c3 = 15 or c7 = false
私はこの結果を得ています
| c1 | c2 | c3 | c4 | c5 | c6 | c7 | c8 |
| 24 | 11 | 15 | NNN | NNN | | true | false |
| 28 | 11 | 13 | NNN | NNN | | true | false |
| 26 | 11 | 15 | NNN | NNN | wwwww | false | false |
| 25 | 11 | 2 | NNN | NNN | qqqq | false | false |
| 33 | 23 | 31 | NNN | NNN | | false | false |
| 31 | 23 | 15 | NNN | NNN | | false | false |
| 31 | 23 | 15 | NNN | NNN | | true | false |
| 25 | 11 | 23 | NNN | NNN | qqqqw2 | false | false |
| 29 | 11 | 22 | NNN | NNN | | true | false |
次のように、検索の一致によってこれを注文しようとしています。
| c1 | c2 | c3 | c4 | c5 | c6 | c7 | c8 |
| 26 |[11]|[15]| NNN | NNN | wwwww |[false]| false |
| 24 |[11]|[15]| NNN | NNN | | true | false |
| 25 |[11]| 2 | NNN | NNN | qqqq |[false]| false |
| 31 | 23 |[15]| NNN | NNN | |[false]| false |
| 25 |[11]| 23 | NNN | NNN | qqqqw2 |[false]| false |
| 28 |[11]| 13 | NNN | NNN | | true | false |
| 29 |[11]| 22 | NNN | NNN | | true | false |
| 31 | 23 |[15]| NNN | NNN | | true | false |
| 33 | 23 | 31 | NNN | NNN | |[false]| false |
したがって、3 つのオプションを持つ行が一番上に表示され、次に少なくとも 2 つのオプションに一致するすべての行が (順不同で) 表示され、最後に 1 つのオプションに一致するすべての行が表示されます。
この順序を達成する方法はありますか?私が持っている他のオプションは、andステートメントでオプションを組み合わせてから、すべての結果でユニオンを使用することですが、それはもっと多いようです
前もって感謝します