您的位置:首页 > 数据库 > MySQL

MySQL自定义查询字段排序

2016-01-18 21:34 567 查看
同事在做抽奖排名的时候有个问题 需要按照

一等奖

二等奖

三等奖

未中奖

的形式输出数据

问到我如何排序。

数据库设计如下 用一个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);


查询结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: