[英]MySQL sort by two columns of one table
我有這張桌子:
CREATE TABLE table_name (id INT, for_id INT, comms VARCHAR(50));
INSERT INTO table_name VALUES (1,0, 'boo'),
(2,1, 'John'),
(3,0, 'Zoe'),
(4,3, 'bar'),
(5,1, 'Don'),
(6,3, 'FOO'),
(7,1, 'Doe');
http://sqlfiddle.com/#!9/859933/6
我如何下一步:
1.0.'boo'
2.1.'John'
5.1.'Don'
7.1.'Doe'
3.0.'Zoe'
4.3.'bar'
6.3.'FOO'
謝謝!
不確定這是否是您真正想要的,您應該對發布后的結果順序進行一些說明。
select *
from table_name
order by
case when for_id = 0 then concat(id, for_id) + 0
else concat(for_id, id) + 0
end
更新:
再試一次,
select *
from table_name
order by
case when for_id = 0 then mod(concat(for_id, id) + 0, 10)
else mod(concat(id, for_id) + 0, 10)
end
, id asc
再次更新:
select *
from table_name
order by
case when for_id = 0 then id
else for_id
end
, id asc
只需使用order by
,它可以得到多個列
Select * from table_name
order by id asc, for_id asc;
使用訂購者和Cancat
select Concat(id,'.',for_id) as id ,comms
from table_name
order by id asc,for_id asc
更新 :
根據您的條件使用命令並應用case
聲明
select *
from table_name
order by
case when for_id = 0 then concat(id, for_id) + 1
else concat(for_id, id) + 0
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.