`

关于sql where条件中in传值大于1000的解决办法

 
阅读更多

虾米链接: http://2814704901.iteye.com/blog/1934564

大家都知道 sql where条件中in的参数 最大为1000  如果我们要传一个大于1000的值 显然是不可行的
这里 我们可以以十为组 来传参。
List<String> urls=new ArrayList<String>();

这里urls的大小是10000

//存储10条记录List

List<String> list=new ArrayList<String>();

int num=0;//检索到的URL集合的大小

int yu=0;//获取余数

num=urls.size();

yu=num%pageSize;

//pageTotal总页数

pageTotal = num / pageSize;

if (num % pageSize > 0){

pageTotal++;

}

if(urls.size()>0){

if(pageNo<pageTotal){

//如果当前页面小于最大页数

for(int i=(pageNo-1)*10;i<=(pageNo*10-1);i++){

list.add(urls.get(i));

}

}else{

//如果当前页面大于或等于最大页数

if(yu>0){

//如果余数大于零

for(int i=(pageNo-1)*10;i<((pageNo-1)*10+yu);i++){

list.add(urls.get(i));

}

}else{

for(int i=(pageNo-1)*10;i<pageNo*10;i++){

list.add(urls.get(i));

}

}

}

//我们只显示一页的内容 条数为10条  页码为1 

infoList=this.RgiService.searchTBIfo(10, 1, list, startTime, endTime, resource);

total=urls.size();

在你Action继承的基类中 pageSize一页中的条数以及pageNo页数 均要有get()和set()  

其中pageNo在jsp显示的 【下一页】、【最后一页】、【上一页】、【首页】的实现是在基类中实现的
和Action方法就没有关系了  我们用10和1取代了pageSize和pageNo

注意:如果查询条件in中参数值过长 如:参数是网页地址  这样查询起来会很慢 
           我们可以通过获取没一个网页地址对应的唯一ID(NUMBER类型) 来查询 
           这样 原本10s才能解决的问题 只需要2s了
          不过多了10次查询,对查询也是有影响的。

分享到:
评论

相关推荐

    oracle sql in 连接大于1000报错解决办法

    oracle sq 使用l in 连接大于1000情况下报错解决办法。

    SQL存储过程IN参数的解决办法

    ### SQL存储过程IN参数的解决办法 #### 方法一:使用临时表进行参数处理 此方法主要利用了SQL Server中的临时表来实现对多个输入参数的处理。具体步骤如下: 1. **定义变量**:首先定义了一个`nvarchar(200)`类型...

    sqlserver的存储过程与 where in 多值参数

    本文将探讨在SQL Server中,存储过程与`WHERE IN`子句结合使用时,处理多值参数的几种方法。 **方法一:拼接SQL字符串并调用`EXEC`** 这是最简单也是最直观的方法。你可以在存储过程中接收一个包含多个值的参数,...

    SQL中in参数化的用法

    在 SQL 中,对于 IN 操作符的使用是非常常见的,特别是在 WHERE 子句中规定多个值时。如:select * from A where ID in (1,2,3,4)。但是在实际开发中,我们不可避免地需要处理大量的数据,传统的方法是直接将参数...

    SQL中on条件与where条件的区别

    SQL中on条件与where条件的区别基础知识

    SQL Where的简单判断

    而WHERE子句则是SQL查询中最常用的部分之一,用于过滤结果集,只返回满足特定条件的数据行。 ### SQL WHERE 子句简介 WHERE子句是SQL SELECT语句的一个关键组成部分,用于指定哪些行应该被选择。其基本语法如下: ...

    Oracle SQL in 超过1000的解决方案list

    oracle中如果非要用in作为条件的话,超过1000条可以用col in() or col in()的方式来处理

    SQL SERVER数据导出工具可以根据WHERE条件导出数据

    SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具

    java调用shell向DataX传参,带where条件,特殊字符

    然后,关于DataX参数的传递,DataX任务通常通过JSON配置文件来定义,例如`etl_job_oracle2postgresql_sqlwhere_full.json`。在这个文件中,你可以定义源数据库、目标数据库以及数据过滤条件(where子句)。在涉及...

    基于jquery js自定义sql条件查询

    用户自己定义动态组织sql查询条件,对于用户来说相当方便的啦。可以自由选择查询字段、条件条件、条件值,选择与或关系,包括括号优先的使用。根据查询字段不同,查询条件值的动态改变,如日期控件、下拉框、可输入...

    SQL 语句中 where 条件后 写上 1=1 是什么意思!.doc

    SQL 语句中 where 条件后 写上 1=1 是什么意思!.doc

    winform树状动态生成SQL无限级where条件语句控件,动态条件

    winform下实现的一个动态无限级的自定义添加SQLwhere条件的控件,显示外观是树状列表,只要你给这控件设置好哪几个字段可以用来拼where,那么运行起来后你可以动态的无限级的添加子and/or等等条件拼接,可以支持生成...

    Excel数据库SQL多条件查询.

    此外,SQL还支持更复杂的条件组合,如嵌套的WHERE子句,以及使用IN、BETWEEN等操作符。例如,我们可以查询价格在某个范围内的花木: ```sql SELECT * FROM 园林工程花木种类查询表 WHERE 价格 BETWEEN 100 AND 500;...

    SQL语句之条件查询-WHERE(where).docx

    在SQL查询中,`WHERE`子句是至关重要的部分,它允许我们根据特定的条件过滤结果集。在本文中,我们将深入探讨`WHERE`子句的使用,包括条件表达式筛选、逻辑表达式筛选以及模糊查询等不同类型的筛选方法。 首先,让...

    pandas 像SQL一样使用WHERE IN查询条件说明

    WHERE IN查询是SQL中的一个常用条件,用于选取符合特定值列表的行。在pandas中,可以使用相同的思想来筛选DataFrame中的数据。假设我们有一个DataFrame `newDB`,并且想要选取`groupId`列中值为`newDropList`列表中...

    where 条件查询.sql

    where 条件查询.sql

    SQL Server 2008 安装失败后的解决办法

    本文将着重介绍解决SQL Server 2008安装失败后的解决办法,旨在帮助用户快速解决安装问题,确保SQL Server 2008的顺利安装。 一、卸载所有Microsoft SQL Server相关软件 在安装SQL Server 2008之前,需要卸载所有...

    where条件课堂笔记.sql

    where条件课堂笔记.sql

    《kettle中实现动态SQL查询》博客文章示例代码

    在传统的SQL语句中,查询条件通常是静态的,但在处理多变的数据需求时,这种静态方式往往不够灵活。动态SQL允许我们在运行时构建和执行SQL语句,使我们能够根据变量或参数来改变查询内容。 问号占位符是SQL中常见的...

Global site tag (gtag.js) - Google Analytics