Mysql 按与IN语句相同的顺序排列查询结果

Mysql 按与IN语句相同的顺序排列查询结果,mysql,Mysql,我有以下疑问 SELECT * FROM campaigns where campaign_id IN ( 'idStrOne', 'idStrTwo', 'idStrThree' ); 其结果由表活动的主键“id”排序。这不是我要的订单 我希望返回的结果与in函数的参数的顺序相同。所以在这种情况下,我想要的顺序是 idStrOne, idStrTwo, idStrThree 如何获取此顺序?您可以尝试在ORDERBY子句中添加大小写表达式 SELECT * FROM campaigns

我有以下疑问

SELECT * FROM campaigns where campaign_id IN ( 'idStrOne', 'idStrTwo', 'idStrThree' );
其结果由表活动的主键“id”排序。这不是我要的订单

我希望返回的结果与in函数的参数的顺序相同。所以在这种情况下,我想要的顺序是

idStrOne, idStrTwo, idStrThree

如何获取此顺序?

您可以尝试在ORDERBY子句中添加大小写表达式

SELECT * 
FROM campaigns 
WHERE campaign_id IN ( 'idStrOne', 'idStrTwo', 'idStrThree' )
ORDER BY 
(CASE campaign_id WHEN 'idStrOne' THEN 1 WHEN 'idStrTwo' THEN 2 ELSE 3 END);

+我喜欢订单中的案例陈述。一直使用它,如此宝贵的工具!