简要做一下总结:
为实现类似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