gpt4 book ai didi

php - 基于时间的复杂 MySQL 排序

转载 作者:行者123 更新时间:2023-11-29 08:57:21 26 4
gpt4 key购买 nike

我必须根据 unix 时间字段对 MySQL 记录进行排序。但是,某些记录保存的值为 1,而不是时间。以下是我希望对它们进行排序的方式,假设当前时间为 125:

127
130
132
133
1
1
1
1
124
122
119

正如您所看到的,顶部部分是按时间字段按 ASC 顺序排列的记录,其中最早的时间在前,后面是所有标记为 1 而不是正确时间的记录,然后是来自按 DESC 顺序过去。这可行吗?

最佳答案

您可以使用以下代码来完成此操作:

drop table if exists numbers;
create table numbers ( value int );
insert into numbers values
(119),(122),(124),(127),(130),(131),(1),(1),(1),(1);

select
value
from numbers
order by if( value = 1, 125, if( value > 125, 99999 - value, value ) ) desc

产生:

value
-----
127
130
131
1
1
1
1
124
122
119

只需将所有出现的 125 替换为当前时间,并将“99999”替换为表格中可能遇到的最大时间值。

关于php - 基于时间的复杂 MySQL 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9616498/

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