订单按字段等于特定值?
问题描述:
比方说,我有这样的MySQL查询:订单按字段等于特定值?
SELECT * FROM A WHERE x='abc' OR y=0;
我怎样才能行的优先级,以便在那里x='abc'
是有序的第一批案件?如果y=0
但是x!='abc'
,我希望那些行在x='abc'
之后出现。
这可以用一个简单的ORDER BY子句来完成吗?
谢谢!
答
SELECT *
FROM A
WHERE x='abc'
OR y=0
order by case when x='abc' then 0 else 1 end;
答
我会用一个case语句做到这一点:
SELECT *,
CASE WHEN column_one = 0 THEN 0
WHEN column_two = 'ADMIN' THEN 1
END AS multi_column
FROM sometable
ORDER BY multi_column;
答
ORDER BY FIELD(x,'abc',x)