Tôi cần cập nhật bảng ngoại trừ 1000 bản ghi hàng đầu. truy vấn của tôi là như thế này:Cập nhật MySQL sau N hàng
UPDATE tableA
SET price = 100
WHERE price = 200 AND
item_id =12 AND
status NOT IN (1,2,3);
Tôi biết approcah subquery sẽ làm việc ở đây nhưng tôi đang gặp một bảng rất lớn, trong đó 200000 hồ sơ đáp ứng các điều kiện WHERE
và nó đang phát triển. Vì vậy, tôi nghĩ rằng nếu tôi làm theo các phương pháp tiếp cận truy vấn phụ, nó sẽ không quy mô như DB phát triển.
Ngoài ra tôi đã thấy chỉ định LIMIT
trong truy vấn UPDATE
nhưng tối đa là giới hạn nhất định. Trong trường hợp của tôi nó là sau một sự bù đắp nhất định và nên cập nhật tất cả các hồ sơ.
Cũng có thể tìm tổng số và chỉ định tổng số là LIMIT. Nhưng truy vấn COUNT()
không thành công.
Cảm ơn Rahul vì đã trả lời nhanh. nhưng tôi không thể dựa vào ID ở đây vì nó đang chọn cho một mục cụ thể và do đó các ID có thể không theo thứ tự. –
với 'ID' có nghĩa là một cột auto_increment duy nhất giống như cột. thì giải pháp trên là giải pháp hiệu quả nhất. nếu không thì nó hơi tẻ nhạt khi nói đến tải trọng lớn. – Rahul
Vâng. Tôi cũng có nghĩa là như nhau :) –