sql >> データベース >  >> RDS >> Mysql

MySQLのSQLクエリでIN句としてArrayList<>を渡す方法

    正しい数のマーカーを使用して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. PHP MySQL-6行ごとにdivを挿入しますか?

    2. MySQLで各グループの最大n値を見つける

    3. SQLでの在庫平均コストの計算

    4. SQLデータ型:今日停止する必要がある5つの最悪の選択肢