sql >> データベース >  >> RDS >> PostgreSQL

複数の列を使用するパラメーター化されたIN句

    あなたがしなければならないのは、配列のリストを渡すことです。各配列には、次のようにキーと値が含まれています。

    HashMap<String , String > map = new HashMap<>();
    map.put("key0", "value0");
    map.put("key1", "value1");
    Set<String> keys = map.keySet();
    List<String[]> valuesMap = new ArrayList<>();
    for(String key:keys){
        String[] entry = {key,map.get(key)};
        valuesMap.add(entry);
    }
    String sql = "select * from mytable where (key, value) in (values :valuesMap)";
    SqlParameterSource params = new MapSqlParameterSource("valuesMap", valuesMap);
    jdbcTemplate.query(sql, params, rowMapper);
    

    これはSpringのドキュメントに記載されています: http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/jdbc.html#jdbc-in-clause



    1. Oracle SYSアカウントとSYSTEMアカウントの違いは何ですか?

    2. MySQLのトリガーでプリペアドステートメントを使用する代わりに

    3. Pentahoでダッシュボードを作成するときにpostgresで作成された「接続が多すぎます」

    4. codeigniterクエリに動的where句を追加する方法