b站推出的短视频app哪个好/网站seo优化公司
刚刚遇到个特殊需求,如下查询,先根据ddate和money排序查询出10条数据,但是如果查询出来的记录的id中包含特殊id,如vip会员的id,需要排序到最前面;
mysql> select id,money,ddate,type,size from pincome order by ddate desc,money desc limit 10;
+-------+---------+----------+------+------+
| id | money | ddate | type | size |
+-------+---------+----------+------+------+
| 14469 | 658869 | 20140616 | 1 | 3898 |
| 14495 | 195635 | 20140616 | 41 | 197 |
| 14489 | 139698 | 20140616 | 3 | 106 |
| 14481 | 84370 | 20140616 | 222 | 59 |
| 14483 | 66598 | 20140616 | 241 | 45 |
| 14479 | 56213.1 | 20140616 | 221 | 55 |
| 14487 | 44254 | 20140616 | 281 | 75 |
| 14505 | 40702 | 20140616 | 8 | 52 |
| 14493 | 33450 | 20140616 | 4 | 6 |
| 14477 | 25812 | 20140616 | 21 | 27 |
+-------+---------+----------+------+------+
10 rows in set (0.01 sec)
查了一些资料,发现mysql还真能实现,oracle在这方面貌似还实现不了(或许只是我知识不够而已,还没有发现oracle怎么实现)
mysql下的实现方法如下:(假如id=14505是我们的VIP高级会员,排序时需要靠前显示)
mysql> select id,money,ddate,type,size from pincome order by id=14505 desc ,ddate desc,money desc limit 10;
+-------+---------+----------+------+------+
| id | money | ddate | type | size |
+-------+---------+----------+------+------+
| 14505 | 40702 | 20140616 | 8 | 52 |
| 14469 | 658869 | 20140616 | 1 | 3898 |
| 14495 | 195635 | 20140616 | 41 | 197 |
| 14489 | 139698 | 20140616 | 3 | 106 |
| 14481 | 84370 | 20140616 | 222 | 59 |
| 14483 | 66598 | 20140616 | 241 | 45 |
| 14479 | 56213.1 | 20140616 | 221 | 55 |
| 14487 | 44254 | 20140616 | 281 | 75 |
| 14493 | 33450 | 20140616 | 4 | 6 |
| 14477 | 25812 | 20140616 | 21 | 27 |
+-------+---------+----------+------+------+
10 rows in set (0.01 sec)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23249684/viewspace-1251869/,如需转载,请注明出处,否则将追究法律责任。