sql server和mysql中分别实现分页功能

MySQL

在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的记录,

例如: select * from tablename limit m, n

sql="select * from users order by userId limit "+(pageNow-1)*pageSize+","+pageSize ;

获取分页后每页的数据:

//分页显示用户的 信息
public ArrayList getUsersByFenye(int pageSize,int pageNow){

String sql="select * from users order by userId limit "+(pageNow-1)*pageSize+","+pageSize ;
SqlHelper sqlHelper=new SqlHelper();
ArrayList al=new ArrayList();
ResultSet rs=sqlHelper.executeQuery(sql, null);
try {
while(rs.next()){
User user=new User();
user.setUserId(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
user.setPhone(rs.getString(4));
user.setGrade(rs.getInt(5));
al.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return al;
}

  

获取总页数:

public int getPageCount (int pageSize){
String sql="select count(*) from users";
int pageCount=0;
SqlHelper sqlHelper=new SqlHelper();
ResultSet rs=sqlHelper.executeQuery(sql, null);
try {
if(rs.next()){
int rowCount=0;
rowCount=rs.getInt(1);
pageCount=(rowCount-1)/pageSize+1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return pageCount;
}  

SQL Server

但是,在SQL Server中,不支持 Limit 语句。怎么办呢?
解决方案:
虽然SQL Server不支持 Limit ,但是它支持 TOP。

ps=ct.prepareStatement("select top "+pageSize+" * from users where userId not in (select top "+pageSize*(pageNow-1)+" userId from users)");

时间: 2024-10-29 22:42:33

sql server和mysql中分别实现分页功能的相关文章

SQL Server 与MySQL中排序规则与字符集相关知识的一点总结

原文:SQL Server 与MySQL中排序规则与字符集相关知识的一点总结 字符集&&排序规则 字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码排序规则则是在特定字符集的基础上特定的字符排序方式,排序规则是基于字符集的,是对字符集在排序方式维度上的一个划分.排序规则是依赖于字符集的,一种字符集可以有多种排序规则,但是一种排序规则只能基于某一种字符集的比如中文字符集,也即汉字,可以按照“拼音排序”.“

浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

最近一次的面试中,被面试官问到varchar和nvarchar的区别,脑海里记得是定长和可变长度的区别,但却没能说出来.后来,在网上找了下网友总结的区别.在这里做个备忘录: 一,SQL Server中char,varchar,nchar,nvarchar的区别(援引:https://www.cnblogs.com/limeiky/p/5313312.html) 1,定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不

sql server与mysql 中创建唯一索引

/*筛选索引 SQL SERVER 2008 测试*//* 应用:用户表,通过ID可以登录, 如果有电话号码也可以登录,但此时必须保证电话号码唯一.*/--1,创建测试表CREATE TABLE T( ID VARCHAR(20) NOT NULL PRIMARY KEY, MOBILE VARCHAR(20)NULL) --2,创建索引 唯一,非聚集索引(并添加筛选条件)CREATE UNIQUE NONCLUSTERED INDEX [IDX_MOBILE] ON [dbo].[T] ( [

安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程

       问题:在服务器(操作系统为Windows server 2012)上安装SQL Server 2012的过程中,安装停留在下图所示的界面上,显示”正在启用操作系统功能NetFx3”随后出现提示框,告知启用windows功能NetFx3时出错. 分析:NetFx3指的是.NET Framework 3.5,SQL Server 2012数据库系统的运行需要依靠.NET Framework 3.5,但是Windows Server2012默认情况下是并没有安装.NET Framewor

Microsoft Dynamics CRM 2015 之安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错

错误详细信息: § 安装 Microsoft .NET Framework 3.5 时出错 启用 Windows 功能 NetFx3 时出错,错误代码: -2146498298.请尝试从 Windows 管理工具启用 Windows 功能 NetFx3,然后重新运行安装程序.有关如何启用 Windows 功能的详细信息,请参阅 http://go.microsoft.com/fwlink/?linkid=227143 错误代码: 0x85940001 访问 http://go.microsoft

sql server 实现mysql中group_concat,列转行,列用分隔符拼接字符串

----基础 一个用户对应多个角色.role_id 为int类型使用 convert(VARCHAR,role_id)转义 ----sql: select b.user_id , roles = stuff((select ',' + convert(VARCHAR, t.ROLE_ID) from base_user_role t where b.USER_ID = t.user_id for xml path('')) , 1 , 1 , '') from base_user_role b

atitit。mssql sql server 转换mysql 及 分页sql ast的搭建

atitit.mssql sql server 转换mysql  及 分页sql ast的搭建 1. 主要的的转换::函数的转换,分页的转换 1 2. 思路::mssql sql >>ast>>mysql 1 3. sql主要的如下::: 1 4. Mssql2MysqlConvertor (proj:wechatAdm4propt 2 1. 主要的的转换::函数的转换,分页的转换 2. 思路::mssql sql >>ast>>mysql 3. sql主要

数据库 SQL Server 到 MySQL 迁移方法总结

最近接手一起老项目数据库 SQL Server 到 MySQL 的迁移.因此迁移前进行了一些调查和总结.下面是一些 SQL Server 到 MySQL 的迁移方法. 1. 使用 SQLyog 迁移 具体方法可以参加:http://www.cnblogs.com/gaizai/p/3237907.html 优点:该迁移方法很简单,灵活,迁移时,可以进行字段的修改,比如在sql server中原来是datetime,然后迁移到mysql时你可以配置成timestamp: 成功率很高: 缺点:迁移很

oracle 、sql server 、mysql 复制表数据

我们知道在oracle 中复制表数据的方式是使用 create table table_name as select * from table_name 而在sql server  中是不能这么使用的 语句如下: select * into table_name from table_name; 而在 mysql 中有两种方式 1. create table a like b 2. 类似oracle的方式 create table table_name as select * from tabl