users
id | status | qualified
1 | yes | BE
2 | no | BCOM
3 | no | BSC
4 | no | BE
5 | yes | BE
我希望使用qualified = BE的用户首先获取,然后使用状态yes然后获取其他用户
我写了如下查询,但没有按预期得到结果
SELECT *
FROM users
ORDER BY
CASE WHEN qualified = 'BE'
THEN 0
WHEN status = 'yes'
THEN 0
ELSE 1
END
答案 0 :(得分:2)
在MySQL中比较0
和1
中的结果。所以你可以做到
SELECT *
FROM users
ORDER BY qualified <> 'BE',
status <> 'yes'
通常你可以做到
SELECT *
FROM users
ORDER BY case when qualified = 'BE' then 1 else 2 end,
case when status = 'yes' then 1 else 2 end
答案 1 :(得分:0)
您也可以执行类似
的操作在qual ='BE'时选择case然后1 当status ='Yes'然后2 else 3 End as Ranking, *来自用户排名