问题现象:排序语句写了两个字段,但只按照第一个字段排序。
如图,我为文章数据添加了两个字段,article_level表示文章等级,0为置顶文章,1为普通文章。article_time即文章的创建时间。
当要排序先安时间倒序排列,再将标记为0的文章提前至顶端的时候,发现并没有出现理想的排序结果。
SELECT * FROM `article` ORDER BY `article_time` DESC ,`article_level`
解决方案:
数据库会优先第一个排序字段,然后第一个字段相同的时候,才会去用第二个字段排序。
因此,将article_level与article_time互换:
SELECT * FROM `article` ORDER BY `article_level`,`article_time` DESC
即可