MySQL自定义查询字段排序
2016-01-18 21:34
567 查看
同事在做抽奖排名的时候有个问题 需要按照
一等奖
二等奖
三等奖
未中奖
的形式输出数据
问到我如何排序。
数据库设计如下 用一个prize_code字段标示了是否中奖 1是一等奖 2是二等奖 3是三等奖 0是未中奖
思考许久 本来开始想用union 写出SQL如下
查询结果如下:
![](https://images2015.cnblogs.com/blog/704203/201601/704203-20160118213008750-816204353.png)
然后同事觉得太复杂 不好理解 ,后来我说提供用分两次查询的方式交给php处理排序 ,然后他说 那样不利于分页 而且逻辑复杂了,于是我想到不如自定义排序
最终解决如下:
查询结果如下:
一等奖
二等奖
三等奖
未中奖
的形式输出数据
问到我如何排序。
数据库设计如下 用一个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;
查询结果如下:
![](https://images2015.cnblogs.com/blog/704203/201601/704203-20160118213008750-816204353.png)
然后同事觉得太复杂 不好理解 ,后来我说提供用分两次查询的方式交给php处理排序 ,然后他说 那样不利于分页 而且逻辑复杂了,于是我想到不如自定义排序
最终解决如下:
SELECT * FROM data order by field(prize_code,1,2,3,0);
查询结果如下:
![](https://images2015.cnblogs.com/blog/704203/201601/704203-20160118213252297-232492672.png)
相关文章推荐
- mysql主键varchar(255)报错
- Mysql的函数使用方法
- MySQL学习8_mysqld与mysql命令区别
- wamp --mysql 控制台总是在Enterpasswd后闪退
- MySQL:MySQL日期数据类型、MySQL时间类型使用总结
- mysql查询当前日期的前一个月内的数据
- mysql 替换某个字段中的某个字符
- Mysql使用正则表达式-regexp
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- mysql关于排除表中重复数据
- mysql数据库——源码安装
- Windows下MySQL5.7.10免安装配置
- Mysql 从零开始(五)函数之字符串函数
- 完成wamp安装后Mysql配置记录
- 【转】解决MySQL主从复制不一致的情况
- mysql存储过程详解
- 利用端口转发访问VirtualBox虚拟机中的MySQL
- mysql查询分组归类函数-group_concat,通常与group_by一起使用
- nodejs 安装mysql、socket.io 插件