MySQL里面关于ORDER BY 指定字段或者指定值的排序

  •   
  • 10898
  • MySQL
  • 1
  • super_dodo
  • 2014/08/08

在MySQL里面有些场景运用可能需要例如 mysql order by 指定某个值排在最后/最前的方法。
例如在一个项目中,商家抛出一个需求,很多人去回复竞争这个需求单,当商家选择了其中一个之后。商家再次来看到这个回复列表的时候。就需要把已选择的用户排序排在最前面,用户也可能有多条回复信息,但是不影响,都可以把指定字段指定值排序在最前面。

//回复添加人的ID=5的排在最上面
SELECT * FROM post_reply_list ORDER BY add_user='5' DESC,id DESC;

//回复添加人的ID=5的排在最下面
SELECT * FROM post_reply_list ORDER BY add_user='5' ASC,id DESC;

可能还有其他的SQL语句能实现,请各位大神指点。。

另外的方法是使用php进行数组的排序,这样如果有分页就需要array_slice,此处不过细分析。
可参照文章PHP基于数组的分页函数(array_slice())–附带分页加强版

若僧有罪,罪不及僧众;若僧当罚,罚不在焚宫。