2015-04-23 88 views
0

有一个表称为项目及其详细信息。 项目mysql按特定顺序按多个值排序

id | status |name 
1 | Red | Prj1 
2| Amber | Prj2 
3| Green | Prj3 
4| RED | Prj4 
5|Completed | Prj5 
6|Amber | Prj6 
7|Green | Prj7 
5|Completed | Prj8 

下使用mysql-我可以安排在特定的顺序。 结果所需要的全部显示在红色比绿色和琥珀色首位项目预先已完成

感谢后

回答

1

只需使用在order by的表达式:

order by (case when status = 'red' then 1 when status = 'green' then 2 else 3 end) 
+0

@戈登·利诺夫感谢它的工作 – user186730

1
SELECT * 
FROM projects 
ORDER BY FIND_IN_SET(status,'Completed,Amber,Green,Red') DESC 
+0

@亚历克斯#1305 - 功能DEV.FIND_IN_INDEX不存在获取此错误 – user186730

+0

感谢亚历克斯现在的作品 – user186730