我想检索一个有序的查询结果,但是我需要在列表的前面有一些特定的行。类似于“堆栈溢出”中的内容,在答案列表中,正确的答案始终是第一个答案。1 |/ s% [1 D9 |& d2 I! |
假设我需要ID以1、2、3行为标题,其余按日期字段排序,能否执行以下操作:$ V# L- r) y. W4 v9 o
SELECT * FROM foo ORDER BY id IN created_date如果没有,哪个更有效率?将有很多行! $ i1 f- U* K1 k5 G, p2 PSELECT *,0 AS head FROM foo WHERE id IN (1,2,3) UNIONSELECT *,1 AS head FROM foo WHERE id NOT IN (1,2,3)ORDER BY head,created_date或者 ! [2 M8 o+ |- h5 aSELECT *,IF(id IN AS headORDER BY head,created_date(我现在使用MySQL,但是我对别的SQL对解决方案感兴趣。 5 E$ c3 m" \# }$ h2 m) ? 3 {5 |6 z! ]! V$ T- j 解决方案: