MySql 创建排序视图示例

       本周由于项目需求,要将oracle数据库迁移到mysql数据库中,众所周知,mysql的视图创建规则比较多,也没有oracle的一些函数,所以我在创建一个排序视图的时候就遇到了很大的问题,经过多次尝试,终于解决了,希望能给大家一些帮助!!!

        mysql由于没有rank()函数,所以排名没有oracle那么简单,但是我们可以用子查询来做一个简单的排名,其中CURRENT_SCORE字段是我的排序字段

这是我的sql

MySql 创建排序视图示例

图中框起来的就是我的排序,这里的比较条件不能用>=或者<=,要不然排序的结果会已最后一个为准

这是排序的正确结果

MySql 创建排序视图示例

这是用<=的错误结果


MySql 创建排序视图示例

这里为什么+1呢?是因为我发现,如果子查询没有比最大的大的话,就会count出0,如图

MySql 创建排序视图示例

显然,这不是我们需要的结果,所以+1!