CẬP NHẬT TableName1 SET TableName1. col1 = TableName2. col1, TableName1. col2 = TableName2. col2 TỪ Some_Table AS TableName1 INNER THAM GIA Other_Table AS TableName2 ON TableName1. id = TableName2. id WHERE TableName1. cột3 = 'Có'
Hãy chia sẻ
Trong hướng dẫn này, chúng ta sẽ xem xét các cách khác nhau để cập nhật các hàng trong bảng bằng cách sử dụng SQL tiến triển từ các cập nhật chung hơn sang các phương pháp cụ thể hơn
Cập nhật đầy đủ
Nếu mọi trường cần được cập nhật thành cùng một giá trị, bạn có thể thực hiện việc đó bằng cách sử dụng lệnh UPDATE
đơn giản
UPDATE table
SET col = new_value;
Cập nhật có điều kiện
Để thực hiện cập nhật có điều kiện tùy thuộc vào việc giá trị hiện tại của một cột có khớp với điều kiện hay không, bạn có thể thêm mệnh đề WHERE
xác định điều này. Đầu tiên, cơ sở dữ liệu sẽ tìm các hàng khớp với mệnh đề WHERE
và sau đó chỉ thực hiện cập nhật trên các hàng đó
UPDATE table
SET col = new_value
WHERE col = old_value;
Để mở rộng vấn đề này, bạn có thể thêm bất cứ thứ gì vào mệnh đề WHERE
mà bạn thích miễn là đó là một biểu thức hợp lệ. Vì vậy, để thực hiện cập nhật dựa trên giá trị của một cột khác trong cùng một bảng, bạn có thể thực hiện như sau
UPDATE table
SET col = new_value
WHERE other_col = some_other_value;
Vì mệnh đề WHERE
có thể chứa bất kỳ biểu thức hợp lệ nào, nên bạn cũng có khả năng thực hiện cập nhật khi nhiều cột đáp ứng tiêu chí
UPDATE table
SET col = new_value
WHERE col = old_value
AND other_col = some_other_value;
UPDATE table
SET col = new_value
WHERE col = old_value
OR other_col = some_other_value;
Như bạn có thể thấy, bạn có thể mở rộng mệnh đề WHERE
bao nhiêu tùy thích để lọc xuống các hàng nhằm cập nhật những gì bạn cần
Bây giờ điều gì sẽ xảy ra nếu bạn muốn cập nhật các hàng trong một bảng dựa trên điều kiện của một bảng khác?
Vì mệnh đề WHERE
có thể chứa bất kỳ biểu thức hợp lệ nào, nên bạn có thể sử dụng truy vấn con
UPDATE table
SET col = new_value
WHERE other_col IN [
SELECT other_col
FROM other_table
WHERE conditional_col = 1
];
Bạn cũng có thể sử dụng truy vấn con trong phần
UPDATE table
SET col = new_value
WHERE col = old_value;
4 của câu lệnh nếu bạn muốn đặt cột thành một giá trị trong bảng khácUPDATE table
SET col = [
SELECT other_col
FROM other_table
WHERE other_table.table_id = table.id
];
Có lẽ một cách dễ dàng hơn là chỉ định nhiều bảng sau mệnh đề UPDATE
. Chỉ biểu thức
UPDATE table
SET col = new_value
WHERE col = old_value;
4 sẽ thực hiện cập nhật nhưng việc liệt kê các bảng bổ sung sẽ cho phép bao gồm các bảng________số 8_______
Tương tự như việc mở rộng mệnh đề WHERE
, số lượng bảng có thể được mở rộng để bao gồm tất cả các bảng bạn cần nếu bạn có nhiều bảng cần được nối vào