订单按字段等于特定值?

时间:2010-08-10 20:36:55

标签: sql mysql

假设我有这个MySQL查询:

SELECT * FROM A WHERE x='abc' OR y=0;

如何确定行的优先级,以便x='abc'首先订购?如果y=0只有x!='abc',我希望这些行来自x='abc'的情况。

这可以通过简单的ORDER BY子句来完成吗?

谢谢!

3 个答案:

答案 0 :(得分:9)

SELECT *
FROM A 
WHERE x='abc' 
    OR y=0
order by case when x='abc' then 0 else 1 end;

答案 1 :(得分:0)

我会用案例陈述来做:

SELECT *, 
    CASE WHEN column_one = 0 THEN 0 
         WHEN column_two = 'ADMIN' THEN 1 
    END AS multi_column 
FROM sometable
ORDER BY multi_column;

答案 2 :(得分:0)

ORDER BY FIELD(x,'abc',x)