mysql多字段排序查询如何始终把字段为某个值的数据置顶前排
2018-07-16 10:40:33;  来源:追太阳;  作者:;  评论:0 点击:

在进行mysql多字段排序时相互之间总数相互干扰的,尤其是在分页数据列表查询时,如果要某字段指定的某个值始终排在前面置顶,就需要用到下面的mysql命令语法格式了。
在进行mysql多字段排序时相互之间总数相互干扰的,尤其是在分页数据列表查询时,如果要某字段指定的某个值始终排在前面置顶,就需要用到下面的mysql命令语法格式了。
假设有数据表threads和forums,我们进行关联查询并在按照时间排序的情况下,需要status字段值为9的数据置顶,可以只用如下命令:
$sql = "SELECT t.*, f.name FROM threads t, forums f where f.fid=t.fid ORDER BY status=9 desc , t.dateline DESC LIMIT 0, 10";
从以上举例可以看此,其核心是:order by 字段名=指定值 desc 。如果把后面的desc不写或换成asc就变成了后置。
当然,以上写法相对相率差些,如果大数据量可用以下写法:
select from (    
(SELECT t.*, f.name FROM threads t, forums f where f.fid=t.fid status=9)
union all
(SELECT t.*, f.name FROM threads t, forums f ORDER BY t.dateline DESC LIMIT 0, 10)
) t
order by status=9 desc,datelineDESC LIMIT 0, 10

这都是网上的几个例子,大家可供参考:
本文可能部分转载于网络,只供学习交流,如果您认为有侵犯权利等不和法行为,请联系我们及时改正。http://www.zhuitaiyang.com/html/mysql/818.html

相关热词搜索:排序 置顶 mysql命令

上一篇:mysql密码忘记Linux下修改Mysql的用户(root)的密码方法总结
下一篇:最后一页

收藏
回到顶部