Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

có cách nào khác để sử dụng vòng lặp for để chèn nhiều truy vấn không

Vui lòng Xem truy vấn này hy vọng điều này sẽ cải thiện mã và tốc độ của chúng tôi.

Tránh thực hiện các truy vấn SQL trong một vòng lặp

Một lỗi phổ biến là đặt một truy vấn SQL bên trong một vòng lặp. Điều này dẫn đến nhiều chuyến đi vòng đến cơ sở dữ liệu và các tập lệnh chậm hơn đáng kể. Trong ví dụ dưới đây, bạn có thể thay đổi vòng lặp để tạo một truy vấn SQL duy nhất và chèn tất cả người dùng của bạn cùng một lúc.

foreach ($userList as $user) {

  $query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';

  mysql_query($query);

  }

Thay vì sử dụng vòng lặp, bạn có thể kết hợp dữ liệu vào một truy vấn cơ sở dữ liệu duy nhất.

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi nhiều cột trong một câu lệnh duy nhất

  2. Làm cách nào để thêm thông báo cho biết $ user_id đã bị xóa hoặc không tìm thấy $ user_id?

  3. Chế độ xem MySql rất chậm. Tại sao?

  4. Lọc giữa hai ngày MYSQL

  5. Sử dụng Ruby on Rails và SSH để truy cập cơ sở dữ liệu MySQL từ xa trên máy chủ từ xa