Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara melewatkan ArrayList<> sebagai klausa IN dalam kueri SQL di MySQL

Buat pernyataan SQL dengan jumlah penanda yang benar, dan atur semua nilainya.

Hati-hati:Basis data memiliki batas jumlah parameter yang diizinkan, meskipun sangat tinggi untuk 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. Bagaimana cara menyediakan koneksi database mysql dalam satu file di nodejs

  2. Menggunakan MySQL dengan Layanan Heterogen Oracle

  3. Gabung dalam dengan 3 tabel di mysql

  4. Masalah ukuran unggahan di PHP dan MySql

  5. MySQL ALTER TABLE hang