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

forループを使用して複数のクエリを挿入する代わりの方法はありますか

    このクエリを参照してください。これにより、コードと速度が向上します。

    ループ内でSQLクエリを実行することは避けてください

    よくある間違いは、SQLクエリをループ内に配置することです。これにより、データベースへの複数のラウンドトリップが発生し、スクリプトが大幅に遅くなります。以下の例では、ループを変更して単一のSQLクエリを作成し、すべてのユーザーを一度に挿入できます。

    foreach ($userList as $user) {
    
      $query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
    
      mysql_query($query);
    
      }
    

    ループを使用する代わりに、データを1つのデータベースクエリに結合できます。

    $userData = array();
    
    foreach ($userList as $user) {
    
        $userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
    
    }
    
    $query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $userData);
    
    mysql_query($query);
    


    1. 複数の結合を行う場合のtmpテーブルのMySQLの誤ったキーファイル

    2. Postgresqlは、Windowsの再起動後に特定のクエリに1回失敗します

    3. djangoプロダクションでのデータベースの移行

    4. OracleSQLのカスタムオーダー