gpt4 book ai didi

MySQL 过滤器在同一列上排序

转载 作者:行者123 更新时间:2023-11-29 09:28:56 24 4
gpt4 key购买 nike

所需输出:

我希望按升序获取日期为 2019-11-23 17:25:00 及之前的 2 行,这样我就不必在应用程序层对它们进行排序。

|2019-11-23 17:24:00|
|2019-11-23 17:25:00|
<小时/>

我的表格: (出于此问题的目的,我省略了不必要的数据。)

+===================+
|starttime |
+===================+
|2019-11-23 17:22:00|
|2019-11-23 17:23:00|
|2019-11-23 17:24:00|
|2019-11-23 17:25:00|
|2019-11-23 17:26:00|
|2019-11-23 17:27:00|
+===================+
<小时/>

到目前为止我尝试过的:

1) 此查询返回前 2 项(不正确):

SELECT `starttime`
FROM `table`
WHERE `starttime` <= "2019-11-23 17:25:00"
ORDER BY `starttime` ASC
LIMIT 2

返回数据:

|2019-11-23 17:22:00|
|2019-11-23 17:23:00|

2) 此查询返回正确的 2 项,但顺序相反:

SELECT `starttime`
FROM `table`
WHERE `starttime` <= "2019-11-23 17:25:00"
ORDER BY `starttime` DESC
LIMIT 2

返回数据

|2019-11-23 17:25:00|
|2019-11-23 17:24:00|

最佳答案

您的第二个查询是正确的,您所要做的就是将其嵌套在另一个查询中,您将在其中重新排序两行:

SELECT t.*
FROM (
SELECT `starttime`
FROM `table`
WHERE `starttime` <= "2019-11-23 17:25:00"
ORDER BY `starttime` DESC
LIMIT 2
) t
ORDER BY t.`starttime`

请参阅demo .

关于MySQL 过滤器在同一列上排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59117092/

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