按sqlite中的相同输入排序

按sqlite中的相同输入排序,sql,sqlite,sql-order-by,case,Sql,Sqlite,Sql Order By,Case,对于我的项目,我使用sqlite通常我使用mysql。在mysql中,我会进行以下查询: SELECT * FROM breeds where id in (2, 1, 4) ORDER BY FIELD(id, 2, 1, 4) ASC 我需要按ID中的位置下单。如何在sqlite中获得相同的结果,因为FIELD在sqlite中不起作用?您可以使用case表达式-基本上MySQL的FIELD()函数就是这样做的: select * from breeds where id in (2, 1,

对于我的项目,我使用
sqlite
通常我使用mysql。在mysql中,我会进行以下查询:

SELECT * FROM breeds where id in (2, 1, 4) ORDER BY FIELD(id, 2, 1, 4) ASC

我需要按ID中的
位置下单。如何在sqlite中获得相同的结果,因为
FIELD
在sqlite中不起作用?

您可以使用
case
表达式-基本上MySQL的
FIELD()
函数就是这样做的:

select *
from breeds
where id in (2, 1, 4)
order by case id
    when 2 then 1
    when 1 then 2
    when 4 then 3
end

您可以使用
case
表达式-基本上MySQL的
field()
函数就是这样做的:

select *
from breeds
where id in (2, 1, 4)
order by case id
    when 2 then 1
    when 1 then 2
    when 4 then 3
end

如果可以创建一个以逗号分隔的ID列表字符串,如
'2,1,4'
,则可以使用函数
INSTR()


如果可以创建一个以逗号分隔的ID列表字符串,如
'2,1,4'
,则可以使用函数
INSTR()

使用INSTR(),例如。。。列表中的posession和substring start是相对相同的。。。列表中的posession和substring start相对相同。