1 | 18.07 | 0mysql查询排序具有不同的优先级

时间:2016-07-31 10:53:15

标签: php mysql sorting

我最近一直在触底。

我目前要做的是按日期“排序”选择的数据库条目,如果日期已经过去且值X没有改变,则将其附加到列表的顶部,如果值已在底部更改。

使用某种图形解释我的问题可能会好一点。

Entry | "date" | X
1      | 10.07  | 0
1      | 11.07  | 1
1      | 12.07  | 1
1      | 13.07  | 1
1      | 14.07  | 1
1      | 15.07  | 1
1      | 16.07  | 1
1      | 17.07  | 1
1      | 18.07  | 0
1      | 19.07  | 1

这应转换为

Entry | "date" | X
1      | 19.07  | 1
1      | 17.07  | 1
1      | 16.07  | 1
1      | 15.07  | 1
1      | 14.07  | 1
1      | 13.07  | 1
1      | 12.07  | 1
1      | 11.07  | 1
1      | 18.07  | 0
1      | 10.07  | 0

甚至可以使用“纯”mysql吗? 我一直试图通过按日期“排序”来实现它的工作,但这不是我最终想要完成的事情。

SELECT * FROM table_entries ORDER BY start_date ASC LIMIT 25

度过美好的一天

2 个答案:

答案 0 :(得分:0)

通过&x 39; x'和' date'领域。因此,所有记录将按照' x'排序。首先,然后按日期。

SELECT * FROM table_entries ORDER BY x DESC, start_date DESC LIMIT 25

答案 1 :(得分:0)

如果我说得对,你想按X值排序(在顶部有一个),然后按日期排序。 您可以使用ORDER BY X,start_date
来实现它 在您的查询中。
您可以在ASCDESC之后指定Xstart_date以获得所需的效果 你的查询会变成这样的:
SELECT * FROM table_entries ORDER BY X DESC, start_date ASC LIMIT 25