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

Cách chuyển ArrayList <> dưới dạng mệnh đề IN trong truy vấn SQL trong MySQL

Xây dựng câu lệnh SQL với số lượng dấu chính xác và đặt tất cả các giá trị.

Lưu ý:Cơ sở dữ liệu có giới hạn về số lượng tham số được phép, mặc dù nó rất cao đối với MySQL ( 65535 ).

char[] markers = new char[list.size() * 2 - 1];
for (int i = 0; i < markers.length; i++)
    markers[i] = (i & 1 == 0 ? '?' : ',');
String sql = "select * from employee where id in (" + markers + ")";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
    int idx = 1;
    for (String value : list)
        stmt.setString(idx++, value);
    try (ResultSet rs = stmt.executeQuery()) {
        while (rs.next()) {
            // code here
        }
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Doctrine2 - Nhiều lần chèn trong một lần chụp

  2. Lĩnh vực tốt nhất để lưu trữ sinh nhật là gì?

  3. xóa mysql, autoincrement

  4. Người dùng 'Người dùng' @ '%' và 'Người dùng' @ 'localhost' có giống nhau không?

  5. hàng cuối cùng thứ hai của bảng mysql