我目前有一个MYSQL表格如下: 开始日期,上次发布日期,粘滞线程
我目前正在做
ORDER BY sticky DESC, lastpostdate DESC, date DESC
哪个几乎可以工作,它将粘性线程放在顶部(应该是这样),然而它将最新的线程放在底部,并且回复的线程在顶部,即使在回复之后创建了新线程
示例表:
Date lastpostdate sticky
1440291308 | 0 | 0
1938275440 | 1938293999 | 1
1440205782 | 1440212200 | 0
应该订购2,1,3,因为2是粘性的,1是新线程,3是回复但是在1之前发布。
答案 0 :(得分:1)
由于您将lastpostdate设置为0,因此预期正常工作。如果上一个排序列的值相等,则仅使用后续排序列。
例如,如果两个粘滞值都设置为0,那么订单将查找下一个排序列。如果第一个和第二个排序列是等效的,则仅查询第三列。
您应该将lastpostdate设置为最初创建线程的日期,这样可以解决您的问题,并且无需使用第三个排序列。