gpt4 book ai didi

mysql - 指定在排序结果中最后出现的值

转载 作者:行者123 更新时间:2023-11-29 00:03:44 24 4
gpt4 key购买 nike

有什么方法可以指定最后一个值来对 Mysql 结果进行排序。例如,如果我有下表

id    |   Colour
1 | Blue
2 | Red
3 | Yellow
4 | Green

我可以让我的查询结果最后显示“红色”吗

SELECT * 
FROM colours
ORDER By colours ASC [but show Red last]

最佳答案

您需要在 ORDER BY 中使用一些条件逻辑。这将按照您想要的特定顺序对数据进行排序,Red 始终排在最后:

SELECT id, colour
FROM colours
ORDER BY
CASE
WHEN colour <> 'Red'
THEN 1 ELSE 2 END, colour;

参见 SQL Fiddle with Demo .这使用 CASE 表达式为用于排序的每一行分配一个值。 Red 被分配了一个更高的值,所以它会出现在列表的末尾。

这也可以首先编写 Color 等于 Red 的测试:

SELECT id, colour
FROM colours
ORDER BY
CASE
WHEN colour = 'Red'
THEN 2 ELSE 1 END, colour;

参见 Demo .两个版本都将返回:

| ID | COLOUR |
|----|--------|
| 1 | Blue |
| 4 | Green |
| 5 | Orange |
| 6 | Teal |
| 3 | Yellow |
| 2 | Red |

关于mysql - 指定在排序结果中最后出现的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483426/

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