Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cập nhật cột với cùng giá trị cho N hàng đầu (LIMIT) trong MySQL

MySQL cho phép mệnh đề LIMIT trong câu lệnh UPDATE để giới hạn số hàng bị ảnh hưởng. Kết hợp ORDER BY để xác định chính xác các hàng nào được cập nhật.

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
);

Chèn 8 bản ghi:

mysql> INSERT INTO DemoTable(Name) VALUES('Carol'), ('Chris'), ('David'), ('Bob'), ('Mike'), ('Sam'), ('Robert'), ('Adam');

Xem dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả

+----+--------+
| Id | Name   |
+----+--------+
| 1  | Carol  |
| 2  | Chris  |
| 3  | David  |
| 4  | Bob    |
| 5  | Mike   |
| 6  | Sam    |
| 7  | Robert |
| 8  | Adam   |
+----+--------+

Cập nhật 7 hàng đầu (theo thứ tự Id mặc định) thành 'John':

mysql> UPDATE DemoTable SET Name = 'John' LIMIT 7;

Kiểm tra lại:

mysql> SELECT * FROM DemoTable;

Kết quả

+----+------+
| Id | Name |
+----+------+
| 1  | John |
| 2  | John |
| 3  | John |
| 4  | John |
| 5  | John |
| 6  | John |
| 7  | John |
| 8  | Adam |
+----+------+

Cảnh báo: Không có ORDER BY thì thứ tự cập nhật không đảm bảo. An toàn hơn: UPDATE DemoTable SET Name='John' WHERE Id <= 7; hoặc UPDATE ... ORDER BY Id LIMIT 7; (MySQL hỗ trợ ORDER BY trong UPDATE).