IN
希望结果与传递给条件的顺序相同:
SELECT "id",
"field_a",
"field_b",
To_timestamp("on_dated")
FROM "test"
WHERE "id" IN ( 3, 1, 6, 2, 4 );
得到:
编号 | 字段_a | 字段_b | on_dated ------------------------------------- 1 | 维奈 | 中号 | 1383224064 2 | 阿莎 | F | 1383224064 3 | 沙市 | F | 1383224064 4 | 葡萄酒 | F | 1383224064 5 | 阿纳夫 | 中号 | 1383224064 6 | 贾扬特 | 中号 | 1383224064
期待:
编号 | 字段_a | 字段_b | on_dated ------------------------------------- 3 | 沙市 | F | 1383224064 1 | 维奈 | 中号 | 1383224064 6 | 贾扬特 | 中号 | 1383224064 2 | 阿莎 | F | 1383224064 4 | 葡萄酒 | F | 1383224064
试过:
SELECT "id",
"field_a",
"field_b",
To_timestamp("on_dated")
FROM "test"
WHERE "id" IN ( 3, 1, 6, 2, 4 )
ORDER BY Field("id", '3', '1', '6', '2', '4');
但抛出错误:(
找到了更好的答案:
我还为此找到了一个更紧凑的答案:
SELECT * FROM "test"
WHERE "id" IN (3,1,6,2,4)
ORDER BY (id=3, id=1, id=6, id=2, id=4) DESC;