第一种:利用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+")");
第一种与第二种哪个的效率高呢