有没有一种方法可以返回按“ WHERE IN”顺序排序的SELECT结果。价值观? [英] Is there a way to return SELECT results sorted by order of "WHERE IN" values?

查看:57
本文介绍了有没有一种方法可以返回按“ WHERE IN”顺序排序的SELECT结果。价值观?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

说我有电话

SELECT * FROM tablename WHERE id IN (5,3,8,9);

返回ID顺序为3、5、8、9的结果。有没有办法让它以给定的5、3、8、9顺序返回结果?

That returns the results in the id order of 3,5,8,9. Is there any way to get it to return the results in the given 5,3,8,9 order?

推荐答案

SELECT * FROM tablename WHERE id IN (5,3,8,9)
ORDER BY 
CASE id
    WHEN 5 THEN 1
    WHEN 3 THEN 2
    WHEN 8 THEN 3
    WHEN 9 THEN 4
    ELSE 5
  END

小提琴

Fiddle

这篇关于有没有一种方法可以返回按“ WHERE IN”顺序排序的SELECT结果。价值观?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆