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+")");

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

猜你喜欢

转载自904510742.iteye.com/blog/2102391
今日推荐