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

mysql 用 @rownum := @rownum+1 实现 "oracle中的rownum = xxx或者rownum <= xxx" 功能

时间:2020-04-01 17:45:25      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:临时   技术   temp   com   acl   row   oracl   png   mamicode   

我们先看看MySQL官网文档是怎么描述这个问题的:如下图所示。

技术图片

 

 

 由上面可知:MySQL不允许SQL语句的嵌套语句内的when rownum=1等类似的分页查询,需要用到临时变量来实现改造该功能

举个例子:

Oracle中的SQL写法如下:

select  * from
oms_sub_tempdata 
where rownum <= 10 order by dataid asc

MySQL改造之后的写法如下:

select a.* from 

(select b.*,@rownum := @rownum+1 AS rownum from oms_sub_tempdata b,(SELECT @rownum:=0) r) a

where rownum <= #{rownum} order by dataid asc

 

mysql 用 @rownum := @rownum+1 实现 "oracle中的rownum = xxx或者rownum <= xxx" 功能

标签:临时   技术   temp   com   acl   row   oracl   png   mamicode   

原文地址:https://www.cnblogs.com/4AMLJW/p/OraclerownuToMysql202004011738.html

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