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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM