我正在研究MYSQL 5.6,我有以下整数值:
1
2
3
21
22
23
0
想要按小时排序,并希望以这种格式显示我的结果:
3
2
1
0
23
22
21
答案 0 :(得分:0)
将0更改为24:
SELECT
Quantity,
SEC_TO_TIME(Quantity*60*60) as TimeFormat,
CASE WHEN SEC_TO_TIME(Quantity*60*60) BETWEEN '01:00:00' AND '12:00:00' THEN 'AM' ELSE 'PM' END AS AMPM
FROM your_table
ORDER BY AMPM ASC, TimeFormat DESC
数量:包含整数值的列
答案 1 :(得分:0)
我会使用一个维护排序的新表。然后可以由非程序员维护,他们可能会改变他们对业务规则的看法。您可以轻松创建维护此表的Web表单。
# table sorter
hour sortOrder
---- ----------
0 10
1 0
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
10 11
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 20
20 21
21 22
22 23
23 24
你的原始表
# table things
data hour
---- -------
'something' 2
'something else' 4
然后将此表与SQL
连接select * from things t
join sorter s
on t.hour = s.hour
order by s.sortOrder