`
静夜独窗
  • 浏览: 56316 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql函数与string拼接查询id集合哪个效率高

阅读更多

第一种:利用sql函数查询id集合

String sql = "select GROUP_CONCAT(DISTINCT product_id) productId from product_supplier where supplier_id="+supplierId;
   try {
    ps = db.getConn().prepareStatement(sql);
    rs = ps.executeQuery();
    if(rs.next()) {
     con.append(" and p.id in ("+rs.getString(1)+")");
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }

 

第二种:利用string拼接的方式把id结合拼起来

String sql = "select product_id from product_supplier where supplier_id="+supplierId;

StringBuffer sb = new StringBuffer();
   try {
    ps = db.getConn().prepareStatement(sql);
    rs = ps.executeQuery();
    while (rs.next()) {
     sb.append(rs.getInt(1)+",");
    }
    String s ="";
    if(sb.toString().length()>=1){
     s = sb.toString().substring(0,sb.length()-1);
    }
    con.append(" and p.id in ("+s+")");

 

第一种与第二种哪个的效率高呢

0
1
分享到:
评论
2 楼 静夜独窗 2014-08-12  
,也对,机器没有明显的差别
1 楼 lucky16 2014-08-11  
测试下,记录下时间不就OK了。

相关推荐

    C#防SQL注入代码的三种方法

     一:丢弃SQL语句直接拼接,虽然这个写起来很快很方便。  二:如果用SQL语句,那就使用参数化,添加Param  三:尽可能的使用存储过程,安全性能高而且处理速度也快  四:屏蔽SQL,javascript等注入(很是主要的)...

    CPQuery 解决拼接SQL的新方法

    我一直都不喜欢在访问数据库时采用拼接SQL的方法,原因有以下几点: 1. 不安全:有被SQL注入的风险。 2. 可能会影响性能:每条SQL语句都需要数据库引擎执行[语句分析]之类的开销。 3. 影响代码的可维护性:SQL语句与...

    2009达内SQL学习笔记

    大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...

    SELECT子句子查询多行解决方案.md

    如果不想下载,我这里做简要介绍思路:第一步:将子查询的多行数据转化成一个数组,第二步将子查询的数组用","拼接成字符串,使用了array和array_to_string函数 具体SQL在附件markdown文档里详细有写

    php中实现用数组妩媚地生成要执行的sql语句

    会不会碰到这样一种情况呢?... * [array_to_sql 根据数组key和value拼接成需要的sql] * @param [type] $array [key, value结构数组] * @param string $type [sql类型insert,update] * @param array $exclu

    jdbc基础和参考

    CallableStatement:主要用来执行pl/sql的一些过程,函数等。 1.写一条恒成立的select语句,无论你输入的条件是什么,总是能讲表中的所有数据输出 select id,last_name from s_emp where '1' ='1'; where 1=1; ...

    .net 各种实用方法

    - <member name="M:Pic_Chart_Load.SQL_LINK.Oracle_Exe_Sql(System.String,System.String)"> <summary>Oracle执行SQL语句</summary> <param name="sql">SQL语句</param> 厂区</param> <remarks>P3/P4...

    Mybatis现学现用

    如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id.   3. #方式能够很大程度防止sql注入。   4.$方式无法防止Sql注入。 5.$方式...

    Javascript中拼接大量字符串的方法

    $sql=<<<EOD select * from pages where pagename=’$pn’ EOD; python: 代码如下: print “”” This is an example of a string in the heredoc syntax. This text can span multiple lines “”” js...

    python入门到高级全栈工程师培训 第3期 附课件代码

    03 高阶函数使用 04 函数闭包 05 函数闭包装饰器基本实现 06 函数闭包加上返回值 07 函数闭包加上参数 08 函数闭包补充:解压序列 09 函数闭包为函数加上认证功能 10 函数闭包模拟session 11 函数闭包装饰器运行流程...

    基于oracle小数点前零丢失的问题分析

    2.解决办法:用to_char函数格式化数字显示 select to_char(0.338,’fm9999999990.00′) from dual; 结果:0.34 这里重点要看 fm9999999999.99,表示整数部分最多10位,小数部分2位,fm表示去 掉转位字符串后前面的空格,...

    MySQL常用字符串函数

    MySQL常用字符串函数 先看下数据库表 lengtt(str) length:获取参数值的字节个数(注意不是字符个数) SELECT LENGTH('haosy') 结果是5 SELECT LENGTH('haosy郝') 结果是8 不是6(是字节个数不是字符个数,因编码...

    PHP MYSQL注入攻击需要预防7个要点

    3:最好抛弃mysql_query这样的拼接SQL查询方式,尽可能使用PDO的prepare绑定方式。 4:使用rewrite技术隐藏真实脚本及参数的信息,通过rewrite正则也能过滤可疑的参数。 5:关闭错误提示,不给攻击者提供敏感信息...

    Oracle解析复杂json的方法实例详解

     1、在PL/SQL中写json串,无需声明json对象,只需直接拼接成格式正确的json字符串即可,因此数据库对象间json串的传递完全可以用varchar2或clob来代替。  2、结构复杂的json串节点元素值基本上可

Global site tag (gtag.js) - Google Analytics