2015-11-26 195 views
-1

我正在寻找正确的MySQL查询,这将帮助我按2字段(等级和然后姓)的顺序。按等级订购时,我想按特定顺序订购 - 黄金,银色,最后是青铜色。MySQL - 按特定顺序列排序

下面是桌子

Grade | Surname | 

Bronze |  B  |  
Gold |  B  | 
Silver |  C  | 
Gold |  C  | 
Gold |  A  | 
Bronze |  A  | 

所以,我怎么就能够按年级不按字母顺序排序的一个简单的例子,但在一个特定的顺序(即黄金,那么白银,然后铜奖),然后按该姓氏的字母顺序排列?

我已经写好了我的PHP文件并且一切正常,我只需要一些SQL查询的帮助。

希望这是有道理的。 感谢

+0

开始阅读手册http://dev.mysql.com/doc/refman/5.7/en/select.html --- http://dev.mysql.com/doc/refman /5.7/en/order-by-optimization.html –

回答

3
select * 
from tab 
order by FIND_IN_SET(Grade,'Gold,Silver,Bronze'), Surname 
+0

工作很好。 – Drew

+0

正是我想做的 - 完美!谢谢 – c2525

+0

我认为'field()'比这个查询类型比'find_in_set()'更有意义。 –