[DB]mysql 及sql server2005下实现分页效果的sql语句
簡要做一下總結:
????? 為實現類似top的功能,我們在SQL Server中和MySQL中使用到的SQL語句是不同的。
????? 1、在SQL Server中,我們使用? select top N * from tablename來查詢tablename表中前N條記錄。
根據所給變量的不同還有其他方法(但這里是找出第M+1條記錄開始的N條記錄)。
????? 2、在MySQL中,我們則使用select * from tablename limit M,N 來實現相似的效果,其中M表示從第M+1條記錄開始,N表示返回N條記錄。
????? 例如:從uses表中取出第四條到第六條這三條記錄,我們就可以這樣寫:
1、select top 3 * from users where userID not in (select top 3 userID from users order by id) order by id
2、select * from users limit 3,3
在項目中出現的:
// 將SQL語句轉換為特定數據庫的定位行集SQL語句
int startRow = (page - 1) * getRowsPerPage() + 1;
int rows = this.getRowsPerPage();
1。String pageSql = sql + " limit "+(startRow - 1) + ","+rows;
2。String pageSql ="select top "+rows+" * from ("+sql+")a where id not in (select top "+(startRow - 1)+" id from ("+sql+")a order by id) order by id";
select top 10 * from (SELECT * FROM tablename)a where id not in (select top 0 id from (SELECT * FROM tablename)a order by id) order by id
轉載于:https://www.cnblogs.com/wanping/archive/2013/01/18/2867001.html
總結
以上是生活随笔為你收集整理的[DB]mysql 及sql server2005下实现分页效果的sql语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到吃莲子是什么意思
- 下一篇: mysql_load