mat*_*att 6 php mysql sql sorting
我有一个表格,包括:项目,排名分数和用户投票数.为简单起见:id,rank,votes.
我正在尝试运行一个查询,它将项目从最高排名分数排序到最低,除非投票数= 0.
因为我有新项目的基本排名分数,所以无法订购我的排名.
我尝试了以下以及其他一些排列:
$list = $dbh->query('SELECT * FROM ranks ORDER BY votes desc, rating desc case when min(votes)= 0 else rating desc');
Run Code Online (Sandbox Code Playgroud)
无果,后看: 在MySQL条件排序和 条件排序在MySQL?
我试过这个:
SELECT * FROM ranks ORDER BY rating desc, case votes when 0 then votes end
Run Code Online (Sandbox Code Playgroud)
这是表,我得到的输出:
ID : Rating : Votes
2 : 201 : 9
3 : 100 : 0
4 : 100 : 0
5 : 100 : 0
1 : -13 : 9
Run Code Online (Sandbox Code Playgroud)
我理想的输出是:
ID : Rating : Votes
2 : 201 : 9
1 : -13 : 9
4 : 100 : 0
5 : 100 : 0
3 : 100 : 0
Run Code Online (Sandbox Code Playgroud)
如您所见,这并未将所有0个投票项目分组到最后.
我确信这是前额简单,我真的很感激任何指针和最佳实践.干杯!
小智 5
这组全部0结束.
SELECT * FROM `ranks` ORDER BY (Votes=0), Rating DESC
Run Code Online (Sandbox Code Playgroud)
询问
SELECT *
FROM ranks
ORDER BY case votes
WHEN 0 THEN 0
ELSE 1 END DESC, rating DESC
Run Code Online (Sandbox Code Playgroud)
ORDER BY 部分的意思是:
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |