PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Mệnh đề IN được tham số hóa sử dụng nhiều cột

Tất cả những gì bạn phải làm là chuyển một danh sách các mảng, trong đó mỗi mảng chứa một khóa và giá trị, như sau:

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

Điều này được đề cập trong tài liệu Spring: 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. Lỗi Mikro-orm:xác thực mật khẩu không thành công cho postgres của người dùng

  2. Truy vấn động trong hàm kích hoạt trong PostgreSQL

  3. Cách đạt được tính khả dụng cao của PostgreSQL với pgBouncer

  4. Tại sao pg_restore trả về các tùy chọn -d / - dbname và -f / - tệp không thể được sử dụng cùng nhau?

  5. Khoảng cách giữa 2 POINT ở Postgis trong srid 4326 tính bằng mét