sql >> Database teknologi >  >> RDS >> Mysql

Sådan sender du ArrayList<> som IN-klausul i SQL-forespørgsel i MySQL

Byg SQL-sætningen med det korrekte antal markører, og indstil alle værdierne.

Pas på:Databaser har en grænse for antallet af tilladte parametre, selvom det er meget højt for 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. SQLException:Protokolbrud. Oracle JDBC-driver problem

  2. Sådan fungerer LOCATE() i MariaDB

  3. foreach loop:Brug af alle kerner i R (især hvis vi sender sql-forespørgsler inde i foreach loop)

  4. Sådan overvåger du PostgreSQL, der kører inde i en Docker-container:Anden del