PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Sparametryzowana klauzula IN przy użyciu wielu kolumn

Wszystko, co musisz zrobić, to przekazać listę tablic, gdzie każda tablica zawiera klucz i wartość, na przykład:

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

Jest to wspomniane w dokumentacji Springa:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/jdbc.html#jdbc-in-clause



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hibernacja 5 + ZonedDateTime + postgresql obejmują strefę czasową i przesunięcie

  2. Połącz wiele wierszy w tablicy za pomocą SQL na PostgreSQL

  3. Relacja przekazana do #lub musi być strukturalnie zgodna. Niezgodne wartości:[:referencje]

  4. Jak usunąć użytkownika z bazy danych Postgres

  5. Tablice liczb całkowitych Postgres jako parametry?