我有以下查询
SELECT * FROM campaigns where campaign_id IN ( 'idStrOne', 'idStrTwo', 'idStrThree' );
其结果由表格广告系列的主键排序,即'id'。这不是我想要的订单。
我希望结果的返回顺序与IN函数的参数相同。所以在这种情况下我想要的订单是
idStrOne, idStrTwo, idStrThree
我如何获得此订单?
答案 0 :(得分:2)
您可以尝试在ORDER BY子句中添加CASE表达式
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);