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 lệnh
UPDATE table
SET col = new_value
WHERE col = old_value;
7 đơn giảnUPDATE 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 đề
UPDATE table
SET col = new_value
WHERE col = old_value;
8 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 đề UPDATE table
SET col = new_value
WHERE col = old_value;
8 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 kỳ thứ gì vào mệnh đề
UPDATE table
SET col = new_value
WHERE col = old_value;
8 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ư sauUPDATE table
SET col = new_value
WHERE other_col = some_other_value;
Vì mệnh đề
UPDATE table
SET col = new_value
WHERE col = old_value;
8 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 đề
UPDATE table
SET col = new_value
WHERE col = old_value;
8 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ầnBâ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 đề
UPDATE table
SET col = new_value
WHERE col = old_value;
8 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 conUPDATE 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 table
SET col = new_value
WHERE col = old_value;
7. 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 đề
UPDATE table
SET col = new_value
WHERE col = old_value;
8, 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 NameDescriptiontable_reference[s]Tên của [các] bảng sẽ được cập nhật. col_name1, col_name2,. Tên của [các] cột sẽ được cập nhật. expr1, expr2,. [Các] giá trị mới
- Đối với một bảng, câu lệnh CẬP NHẬT cập nhật các cột của các hàng hiện có trong bảng đã đặt tên với các giá trị mới. Các cột cụ thể có thể được sửa đổi bằng cách sử dụng mệnh đề SET bằng cách cung cấp các giá trị mới cho cột đó
- Mệnh đề WHERE có thể được sử dụng để chỉ định các điều kiện xác định hàng nào cần cập nhật. Không sử dụng mệnh đề WHERE, tất cả các hàng được cập nhật
- Mệnh đề ORDER BY được sử dụng để cập nhật thứ tự đã được chỉ định
- Mệnh đề LIMIT chỉ định giới hạn về số lượng hàng có thể được cập nhật
- Đối với nhiều bảng, UPDATE cập nhật hàng trong mỗi bảng có tên trong table_references thỏa mãn các điều kiện. Trong trường hợp này, không thể sử dụng ORDER BY và LIMIT
Câu lệnh UPDATE hỗ trợ các công cụ sửa đổi sau
- ƯU TIÊN THẤP. Sử dụng từ khóa LOW_PRIORITY, việc thực hiện CẬP NHẬT bị trì hoãn cho đến khi không có ứng dụng khách nào khác đọc từ bảng. Điều này chỉ ảnh hưởng đến các công cụ lưu trữ chỉ sử dụng khóa cấp bảng [chẳng hạn như MyISAM, MEMORY và MERGE]
- PHỚT LỜ. Sử dụng từ khóa IGNORE, câu lệnh cập nhật không bị hủy bỏ ngay cả khi xảy ra lỗi trong quá trình cập nhật. Các hàng xảy ra xung đột khóa trùng lặp không được cập nhật. Thay vào đó, các hàng có cột được cập nhật thành giá trị có thể gây ra lỗi chuyển đổi dữ liệu được cập nhật thành giá trị hợp lệ gần nhất
Sau đây là một số ví dụ về bản cập nhật MySQL nơi chúng tôi đã sử dụng newpurchase làm bảng mẫu
bảng mẫu. mua mới
Cột CẬP NHẬT MySQL
Cột UPDATE của MySQL có thể được sử dụng để cập nhật một số cột cụ thể. Câu lệnh MySQL sau sẽ cập nhật cột 'receive_qty' của bảng newpurchase với giá trị mới 20
UPDATE newpurchase SET receive_qty=20;
CẬP NHẬT MySQL với WHERE
Lệnh CẬP NHẬT của MySQL có thể được sử dụng với mệnh đề WHERE để lọc [theo các điều kiện nhất định] những hàng nào sẽ được cập nhật. Câu lệnh MySQL sau sẽ cập nhật cột 'receive_qty' của bảng newpurchase với giá trị mới 25 nếu giá trị của purch_price lớn hơn 50
UPDATE table
SET col = new_value
WHERE col = old_value;
0CẬP NHẬT MySQL bằng cách sử dụng NULL
Lệnh CẬP NHẬT của MySQL có thể được sử dụng để cập nhật giá trị cột thành NULL bằng cách đặt tên_cột = NULL, trong đó tên_cột là tên của cột sẽ được cập nhật. Câu lệnh MySQL sau đây sẽ cập nhật cột pub_lang bằng NULL nếu purch_price lớn hơn 50. Trong câu lệnh này, các cột khác cũng được cập nhật với các giá trị mới tương ứng
UPDATE table
SET col = new_value
WHERE col = old_value;
1MySQL UPDATE nhiều cột
Lệnh UPDATE của MySQL có thể được sử dụng để cập nhật nhiều cột bằng cách chỉ định danh sách cột_name = new_value được phân tách bằng dấu phẩy. Trong đó column_name là tên của cột sẽ được cập nhật và new_value là giá trị mới mà cột sẽ được cập nhật. Câu lệnh MySQL sau đây sẽ cập nhật các cột get_qty, pub_lang và get_dt với các giá trị mới 20, Hindi và 2008-07-10 nếu purch_price lớn hơn 50
UPDATE table
SET col = new_value
WHERE col = old_value;
2CẬP NHẬT MySQL với các truy vấn con
Sau đây, chúng ta đã thảo luận về cách sử dụng lệnh UPDATE của MySQL với các truy vấn con
Câu lệnh MySQL sau đây sẽ cập nhật purch_price với purch_price nhân với 5 nếu nó thỏa mãn điều kiện được xác định trong truy vấn con bắt đầu bằng SELECT được bao bọc trong một cặp dấu ngoặc đơn
Truy vấn con chỉ truy xuất những cate_id đó từ bảng mua nếu số lượng nhận tương ứng của chúng lớn hơn 10
UPDATE table
SET col = new_value
WHERE col = old_value;
3Cập nhật Bảng MySQL bằng PHP Script
Bạn có thể cập nhật dữ liệu bảng MySQL [dùng lệnh UPDATE] thông qua tập lệnh PHP. Trong tập lệnh, hàm PHP MySQL_query[] thực thi lệnh SQL. Chúng tôi đã sử dụng một bảng gọi là 'mục' để áp dụng truy vấn.
Tên bảng. mục Cấu trúc. item_code varchar[20], giá trị int[11], số lượng int[11] trong đó item_code là khóa chính. Trong các hàng tiếp theo của bảng mục, cột 'giá trị' được đánh dấu bằng hình chữ nhật màu đỏ sẽ được cập nhật.
Tập lệnh PHP
UPDATE table
SET col = new_value
WHERE col = old_value;
4Đầu ra mẫu
Nhiều cập nhật trong MySQL
bảng mẫu. Bảng 1
Vấn đề
Nếu bạn muốn cập nhật val1 với 5,8 và 7 cho id 1,3 và 4 có liên quan và val1 khác sẽ giữ nguyên và val2 sẽ được cập nhật với 13 và 5 cho id 2 và 4 có liên quan và cái còn lại sẽ giữ nguyên
Mã số
UPDATE table
SET col = new_value
WHERE col = old_value;
5trình bày bằng hình ảnh
Đầu ra mẫu
ví dụ. CẬP NHẬT MySQL trên nhiều bảng
Ở đây chúng tôi đã sử dụng hai bảng book_mast và buy cho ví dụ sau làm bảng mẫu. Chúng tôi đã hiển thị một số cột trong các bảng được liên kết. Dưới đây là các bảng dưới đây -
UPDATE table
SET col = new_value
WHERE col = old_value;
6Nếu chúng ta muốn cập nhật giá sách của bảng book_mast tăng thêm 5%, đồng thời cập nhật giá_purch_price và tổng_chi phí của bảng puchase theo mức tăng thêm 5% và mức tăng này sẽ chỉ ảnh hưởng đến những hàng đó trong cả bảng book_mast và bảng mua hàng.