Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да предадете ArrayList<> като IN клауза в SQL заявка в MySQL

Създайте SQL израза с правилния брой маркери и задайте всички стойности.

Внимавайте:Базите данни имат ограничение за броя на разрешените параметри, въпреки че е много високо за 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. Как да архивирате съхранените процедури в MySQL

  2. mysql:select max(score) не връща съответните данни за ред

  3. Как да зададете ръчно начална стойност като 1000 в MySQL

  4. Как да вмъкна json данни в таблица?

  5. как да публикувам инсталатора на приложение за прозорци на c#