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

Posted 向着阳光漫步

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 用 @rownum := @rownum+1 实现 "oracle中的rownum = xxx或者rownum <= xxx" 功能相关的知识,希望对你有一定的参考价值。

我们先看看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" 功能的主要内容,如果未能解决你的问题,请参考以下文章

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

mysql

mysql带行号查询

如何在一行中获取这些数据

rownum 的使用

mysql 中关于获取行号@rownum:=@rownum+1