java

sqlite 按照IN中的顺序排列

2018-03-30  本文已影响352人  dogLin

SQL: select * from table where id IN (3,6,9,1,2,5,8,7);

这样的情况取出来后,其实,id还是按1,2,3,4,5,6,7,8,9,排序的,但如果我们真要按IN里面的顺序排序怎么办?SQL能不能完成?是否需要取回来后再foreach一下?

MySQL解决办法

select * from table where id IN (3,6,9,1,2,5,8,7) order by field(id,3,6,9,1,2,5,8,7); 

出来的顺序就是指定的顺序了。。。。

SQLite解决办法

select * from table where id IN (4,3,1,5,6)
ORDER BY 
  CASE ID
    WHEN 4 THEN 0
    WHEN 3 THEN 1
    WHEN 1 THEN 2
    WHEN 5 THEN 3
    WHEN 6 THEN 4
  END

不过尾神说sqlite 这样做的效率太低了 可以做个索引表

上一篇 下一篇

猜你喜欢

热点阅读