MySQL查询按两个字段排序

时间:2011-11-27 15:12:44

标签: mysql sql sql-order-by

我有一个包含以下字段的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

1 个答案:

答案 0 :(得分:2)

如果其中一个始终为零,则日期编号将等于mor + even,因此您可以按此排序。

select *
from your_table
order by (mor + even), even;

自“{日期”记录even = 0起,它们将出现在同一天的任何“偶数”记录之前。