码迷,mamicode.com
首页 > 数据库 > 详细

MySQL自定义查询字段排序

时间:2016-01-18 22:40:22      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

同事在做抽奖排名的时候有个问题 需要按照

一等奖

二等奖

三等奖

未中奖

的形式输出数据

问到我如何排序。

数据库设计如下 用一个prize_code字段标示了是否中奖 1是一等奖 2是二等奖 3是三等奖 0是未中奖

思考许久 本来开始想用union 写出SQL如下

select * from 
    (SELECT * FROM data where prize_code>0 order by prize_code asc) 
as tmp
UNION
select * from data where prize_code=0;

查询结果如下:

技术分享

然后同事觉得太复杂 不好理解 ,后来我说提供用分两次查询的方式交给php处理排序 ,然后他说 那样不利于分页 而且逻辑复杂了,于是我想到不如自定义排序

最终解决如下:

SELECT * FROM data order by field(prize_code,1,2,3,0);

查询结果如下:

技术分享

MySQL自定义查询字段排序

标签:

原文地址:http://www.cnblogs.com/lizhaoyao/p/5140561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!