SQLite和自定义顺序

Chr*_*isB 38 mysql sql sqlite sql-order-by

我有一个类别表:

ID  Category
"1","Baking"   
"3","Family"   
"4","Entertaining"   
"5","Children"   
"6","Desserts"   
Run Code Online (Sandbox Code Playgroud)

现在我想订购select语句的结果

ID  Category
"4","Entertaining"   
"3","Family"  
"1","Baking"   
"5","Children"   
"6","Desserts"  
Run Code Online (Sandbox Code Playgroud)

例如.在MySQL中,你会这样做:

SELECT * FROM CATEGORIES ORDER BY FIELD (ID, 4,3,1,5,6);
Run Code Online (Sandbox Code Playgroud)

你会怎么在SQLite中做到这一点?我没有"order by"字段.

Tom*_*lak 69

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
Run Code Online (Sandbox Code Playgroud)

  • +1我也是,我只是打字出来.另一种选择当然是创建一个作为优先级的属性,然后您可以按优先级排序.这不是理想的方式,而是我过去必须使用的解决方案. (3认同)

Tho*_*hel 5

第二种方法(第一种CASE WHEN ... THEN END方法已在其他答案中说明)是:

ORDER BY ID=4 DESC,
         ID=3 DESC,
         ID=1 DESC,
         ID=5 DESC,
         ID=6 DESC
Run Code Online (Sandbox Code Playgroud)