gpt4 book ai didi

mysql - 使用 mysql order case 对特定行进行排序

转载 作者:行者123 更新时间:2023-11-29 04:27:20 24 4
gpt4 key购买 nike

我有一张表,其 ID 从 1、2、3 递增...等等。我想要的只是根据字段“id”按降序对数据进行排序,前两行除外。我尝试使用以下查询:-

SELECT * FROM categories ORDER BY CASE WHEN id<3 THEN 0 ELSE id END DESC

它给我这样的结果

id    name
5 Meal
4 Apparel
3 Electronics
1 Sports
2 Lifestyle

但是输出应该是这样的

id    name
1 Sports
2 Lifestyle
5 Meal
4 Apparel
3 Electronics

有什么方法可以通过使用这样的查询来实现吗?

最佳答案

试试这个:

SELECT *
FROM categories
ORDER BY CASE WHEN id < 3 THEN 10000 - id ELSE id END DESC;
-- ----------------------------^
-- use a very large number

编辑:

不需要硬编码的更好的解决方案10000:

SELECT *
FROM categories
ORDER BY CASE WHEN id < 3 THEN id ELSE 3 END, id DESC
-- ---------------------^ ^
-- ------------------------------------|
-- these numbers must be same

关于mysql - 使用 mysql order case 对特定行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com