2015-09-05 45 views
2

我在包含下列值中的一個的分貝列:1 2 3 4mysql命令通過混合值,則其他值

我想根據以這種方式該值來訂購:

mix between 1 & 3 then 2 then 4. 

表:服務
色譜柱: 名,SERVICE_TYPE
服務類型可以是1 2 3 4,我想與訂單服務1和3,然後2然後4

顯示

任何想法?
親切的問候

+0

這是完全不清楚。您需要提供表名,列名和更多數據/結果示例。否則,這篇文章可能會被刪除。 –

回答

1

也許這樣的事情,使用case/when

create table t7 
( name varchar(20) not null, 
    aNum int not null 
); 
insert t7 (name,aNum) values ('a',2),('z',3),('n',3),('q',4),('t',1), 
('q',2),('w',3),('e',3),('r',4),('t',1),('y',2); 

select name,aNum, 
CASE WHEN aNum in (1,3) THEN 1 else 2 end as theOrder 
from t7 
order by theOrder; 
+------+------+----------+ 
| name | aNum | theOrder | 
+------+------+----------+ 
| z | 3 |  1 | 
| n | 3 |  1 | 
| t | 1 |  1 | 
| t | 1 |  1 | 
| w | 3 |  1 | 
| e | 3 |  1 | 
| a | 2 |  2 | 
| r | 4 |  2 | 
| q | 2 |  2 | 
| q | 4 |  2 | 
| y | 2 |  2 | 
+------+------+----------+ 

如果mix不是特殊就夠了,然後去

select name,aNum from 
(select name,aNum from t7 where aNum in (1,3) order by rand()) x1 
union all 
select name,aNum from 
(select name,aNum from t7 where aNum in (2,4) order by rand()) x2