我有一个包含以下字段的MySQL表:
id, morning, evening, event, other-fields
大约一周,每天都会有一些事件发生在早上或晚上。因此,事件记录在表中,“day-number”存储在“morning”或“evening”字段中(如果事件发生在早晨,则morning字段包含“day-number”,而night字段包含0反之亦然。这些条目不按顺序或按日制作,而是根据用户自己的意愿制作。
我需要按照正确的顺序获取这些记录,即按升序顺序对记录进行排序,每天的记录需要按会话顺序排序(即先上午然后是晚上)。
请帮助您在这两个字段中订购数据。
以下是三天的一些样本数据:
id, mor, even, otherstuff....
1 1 0
2 3 0
3 3 0
4 2 0
5 3 0
6 3 0
--------------------------
7 0 1
8 0 2
9 0 3
10 0 3
----------------------
以下是我需要获取它的格式相同的上述数据:
id, mor, even, otherstuff....
1 1 0
2 0 1
--------------------------
3 2 0
4 0 2
------------------------
5 3 0
6 3 0
7 3 0
8 3 0
9 0 3
10 0 3
答案 0 :(得分:2)
如果其中一个始终为零,则日期编号将等于mor + even
,因此您可以按此排序。
select *
from your_table
order by (mor + even), even;
自“{日期”记录even = 0
起,它们将出现在同一天的任何“偶数”记录之前。