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


1 | 18.07 | 0mysql query sorting with different priority

我最近跌入了谷底。

我目前想做的是按日期对数据库条目进行"排序",如果日期已经过去,值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

度过美好的一天

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

通过"x"answers"date"字段进行订单。因此,所有记录将首先按"x"排序,然后按日期排序。

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