gpt4 book ai didi

mysql - SQL查询按字母顺序对所有结果进行排序,除了一个?

转载 作者:行者123 更新时间:2023-11-29 01:07:39 25 4
gpt4 key购买 nike

我有一个小问题。我正在使用来自 SQL 数据库的结果填充一个选择标记。我想要的是最后一个添加为顶部条目,其余按字母顺序排序。

所以它会返回:

*----------*-------------*
developerID|developerName
*----------*-------------*
| 40 | ZZZ Dev |
| 39 | A Dev |
| 38 | Be New Dev |
*----------*-------------*

目前它只是按降序选择所有条目:

"SELECT developerName, developerID FROM developer ORDER BY developerID DESC"

这很好,但没有我想要的那么好用。

使用纯 MySQL 可以实现我想要的吗?

最佳答案

假设定义开发人员添加时间的列是 developerAdded(某种时间戳):

SELECT developerName, developerID, 1 AS ordering
FROM developer
WHERE developerAdded = (SELECT MAX(developerAdded)
FROM developer)
UNION
SELECT developerName, developerID, 2 AS ordering
FROM developer
WHERE developerAdded != (SELECT MAX(developerAdded)
FROM developer)
ORDER BY ordering, developername;

如果有其他神奇的方法来确定最近添加的开发者(例如最大 developerID),请相应地调整子查询。

请注意,即使多个开发人员满足“最近添加”标准,此查询也能正常工作;他们按字母顺序出现在工作时间更长的开发人员之前。


由于最近添加的开发者具有最大的 developerID,修改后的查询应该是:

SELECT developerName, developerID, 1 AS ordering
FROM developer
WHERE developerID = (SELECT MAX(developerID) FROM developer)
UNION
SELECT developerName, developerID, 2 AS ordering
FROM developer
WHERE developerID != (SELECT MAX(developerID) FROM developer)
ORDER BY ordering, developername;

关于mysql - SQL查询按字母顺序对所有结果进行排序,除了一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/598793/

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