Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przekazać ArrayList<> jako klauzulę IN w zapytaniu SQL w MySQL?

Zbuduj instrukcję SQL z odpowiednią liczbą znaczników i ustaw wszystkie wartości.

Uwaga:bazy danych mają limit dozwolonej liczby parametrów, choć w przypadku MySQL jest on bardzo wysoki (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. mysql liczba wierszy na godzinę

  2. Grupowanie podobnych wierszy obok siebie w MySQL

  3. Kiedy powinienem używać UNSIGNED i SIGNED INT w MySQL?

  4. PHP, autouzupełnianie MYSQL nie działa

  5. Nie można połączyć:Utracono połączenie z serwerem MySQL podczas „odczytu początkowego pakietu komunikacyjnego”, błąd systemu:0