我之前发布过这个问题并找到了解决方案:ORDER BY with two columns in MySQL
这是关于排序事件。优先级应该是 TOP-PREMIUM 和 PREMIUM 事件总是在每个日期的顶部,无论如何。
解决方案是一列是 ENUM 而不是 INT。这就是他排序错误的原因。
所以现在我这样排序:ORDER BY e.date ASC, e.highlight DESC
现在我遇到了另一个新问题,因为我所有的日期都设置为时间 00:00:00,我在这里提出问题并认为一切都已解决。如果我将时间设置为 00:00 之后的某个小时,它将位于所有事件的首位。即使在 PREMIUM 和 TOP-PREMIUM (highlight) 活动中也是如此。
我可以以某种方式让 MySQL 忽略 datetime 类型列的时间,date
还是有任何其他方法可以使这项工作像我想要的那样工作?
问题还在于我不能首先通过突出显示 DESC 进行排序,因为这样整个列表就不会按日期排序。