2
我想排序的排名列表的运动员,所有这些都有排名位置。然而,有些是新的巡回赛,所以他们的排名是0.如果我简单地按位置ASC排序,0将首先出现,我希望他们在剩下之后出现。我曾尝试类似:MySQL排序排名名单与位置0
SELECT * FROM rankings WHERE season='$season' ORDER BY CASE position = 0 THEN 999, ELSE position ASC
我想排序的排名列表的运动员,所有这些都有排名位置。然而,有些是新的巡回赛,所以他们的排名是0.如果我简单地按位置ASC排序,0将首先出现,我希望他们在剩下之后出现。我曾尝试类似:MySQL排序排名名单与位置0
SELECT * FROM rankings WHERE season='$season' ORDER BY CASE position = 0 THEN 999, ELSE position ASC
试试这个:
SELECT *, (CASE position WHEN 0 THEN 999 ELSE position) AS custom_sort FROM rankings WHERE season='$season' ORDER BY custom_sort ASC
可以严格ORDER BY
子句中处理它
SELECT *
FROM rankings
WHERE season='$season'
ORDER BY (position=0) ASC, position ASC
[MySQL查询订单的
可能重复其他人面前一定值](http://stackoverflow.com/questions/4371193/mysql-query-order-by-certain-values-before-others) –
你可以举一个例子,说明你想如何看待输出。我不知道我是否完全按照你希望的结构看起来。 –