Một cách để cập nhật nhiều hàng là viết nhiều câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5. Chúng có thể được phân tách bằng dấu chấm phẩy [;] và được gửi theo nhóm [được gọi là đợt]Ngoài ra, hãy sử dụng CẬP NHẬT với mệnh đề WHERE. Đây là cú pháp
UPDATE table-name SET column1 = value1, ... WHERE condition
Một ví dụ
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...1 sẽ là.
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...2
Điều này sẽ cập nhật 4 hàng với một câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5Chúng ta có thể CẬP NHẬT giá trị NULL trong SQL không?
Có, bạn có thể
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5 một giá trị NULLTất nhiên, giá trị mới phải phù hợp với kiểu dữ liệu của cột
Trong ví dụ này, tất cả các giá trị NULL được thay thế bằng 0
UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL
Chúng tôi có thể CẬP NHẬT nhiều bảng với một truy vấn SQL không?
Không, chỉ có thể cập nhật 1 bảng với câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5Tuy nhiên, bạn có thể sử dụng một giao dịch để đảm bảo rằng 2 hoặc nhiều câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5 được xử lý dưới dạng một đơn vị công việc. Hoặc, bạn có thể gộp nhiều câu lệnh UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5 và gửi chúng theo nhómLàm cách nào để tôi biết rằng CẬP NHẬT đã thành công?
Nó phụ thuộc vào môi trường mà CẬP NHẬT được thực thi
Trong SMSS, thông báo lỗi màu đỏ được trả về khi
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5 không thành côngTrong một ngôn ngữ lập trình, một ngoại lệ được đưa ra khi xảy ra lỗi
Trong T-SQL, cấu trúc
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...9 có thể ghi lại bất kỳ lỗi nào
Cũng trong T-SQL, hàm toàn cục
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ... WHERE condition0 trả về số hàng bị ảnh hưởng bởi thao tác
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
5 cuối cùng. Điều này cũng có thể hữu ích Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
3, hàm UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
4, mệnh đề UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
0 và hàm UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
1 với hàm UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
2 để cập nhật nhiều cột trong nhiều hàng với các giá trị khác nhau trong MySQLCập nhật nhiều cột trong nhiều bản ghi [hàng] với các giá trị khác nhau trong MySQL
Đôi khi, chúng ta cần cập nhật nhiều cột trong nhiều hàng với các giá trị khác nhau trong cơ sở dữ liệu. Có thể sử dụng nhiều câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
1 nếu chúng ta có một vài bản ghi trong bảngGiả sử có hàng triệu hàng trong bảng. Một số cách để cập nhật bảng được liệt kê dưới đây
- Sử dụng câu lệnh
3UPDATE students SET JavaScore = [case when ID = 1 then 75 when ID = 2 then 80 when ID = 3 then 86 when ID = 4 then 55 end], PythonScore = [case when ID = 1 then 70 when ID = 2 then 85 when ID = 3 then 94 when ID = 4 then 75 end] WHERE ID in [1,2,3,4];
- Sử dụng hàm
4UPDATE students SET JavaScore = [case when ID = 1 then 75 when ID = 2 then 80 when ID = 3 then 86 when ID = 4 then 55 end], PythonScore = [case when ID = 1 then 70 when ID = 2 then 85 when ID = 3 then 94 when ID = 4 then 75 end] WHERE ID in [1,2,3,4];
- Sử dụng
0UPDATE students SET JavaScore = [case when ID = 1 then 75 when ID = 2 then 80 when ID = 3 then 86 when ID = 4 then 55 end], PythonScore = [case when ID = 1 then 70 when ID = 2 then 85 when ID = 3 then 94 when ID = 4 then 75 end] WHERE ID in [1,2,3,4];
- Sử dụng
1 vớiUPDATE students SET JavaScore = [case when ID = 1 then 75 when ID = 2 then 80 when ID = 3 then 86 when ID = 4 then 55 end], PythonScore = [case when ID = 1 then 70 when ID = 2 then 85 when ID = 3 then 94 when ID = 4 then 75 end] WHERE ID in [1,2,3,4];
2UPDATE students SET JavaScore = [case when ID = 1 then 75 when ID = 2 then 80 when ID = 3 then 86 when ID = 4 then 55 end], PythonScore = [case when ID = 1 then 70 when ID = 2 then 85 when ID = 3 then 94 when ID = 4 then 75 end] WHERE ID in [1,2,3,4];
Để tìm hiểu các phương pháp được đề cập ở trên, hãy tạo một bảng có tên
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
9 có UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...40,
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...41 và
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...42 làm thuộc tính [cột] trong đó
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...40 là khóa chính. Bạn có thể làm theo hướng dẫn này bằng cách sử dụng các truy vấn bên dưới để tạo và điền vào bảng
Mã ví dụ
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...8
đầu ra
IDJavaScorePythonScore17065275803818945070Khi bảng
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
9 được tạo và điền, chúng ta có thể sử dụng các phương pháp được đề cậpSử dụng Tuyên bố UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
3
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
Mã ví dụ
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
Sử dụng câu lệnh
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...46 để nhận kết quả cập nhật
đầu ra
Chúng tôi cập nhật nhiều cột trên nhiều hàng với các giá trị khác nhau bằng cách sử dụng câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
3 đi qua tất cả các điều kiện và xuất ra một mục [giá trị] khi điều kiện đầu tiên được thỏa mãn [như câu lệnh UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...48]. Nó dừng đọc khi điều kiện là
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...49 và trả về kết quả tương ứng
Giả sử không có điều kiện
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...49 thì phần
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...51 được thực hiện. Trong trường hợp không có phần
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...51, nó sẽ trả về
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...53
Nếu có một trường khác thuộc loại
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...54 mà chúng tôi muốn giữ cố định cho tất cả các bản ghi, truy vấn sẽ như sau
Mã ví dụ
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...4
Sử dụng hàm UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
4
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
Mã ví dụ
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...5
Thực hiện lệnh
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...46 để lấy các giá trị mới của bảng
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
9đầu ra
IDJavaScorePythonScore17671281863879545676Chúng tôi sử dụng hàm
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
4 trả về một giá trị cụ thể nếu điều kiện được thỏa mãn. Mặt khác, nó trả về một giá trị được chỉ định khác. Cú pháp của nó là UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...59
Bạn có thể thắc mắc nếu điều kiện của
UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL40 đáp ứng thì tại sao nó lại chuyển sang một
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
4 khác? UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL4
Hãy làm cho nó đơn giản hơn để hiểu. Trong đoạn mã sau, chúng tôi có nhiều
UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL43 và điều kiện có được đáp ứng hay không không quan trọng
Mọi điều kiện
UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL45 sẽ được kiểm tra và đặt giá trị tương ứng.
UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL45 cuối cùng có phần
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...51, phần này sẽ chỉ chạy nếu điều kiện của
UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL45 thứ tư là
UPDATE Supplier SET AmountSold = 0 WHERE AmountSold IS NULL49
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...3
Lý do sử dụng các hàm
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
4 lồng nhau là để cập nhật nhiều hàng với các giá trị khác nhauKhi được yêu cầu cập nhật nhiều cột trong nhiều hàng, chúng tôi thích sử dụng câu lệnh
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
3 hơn vì nó dễ hiểu và dễ quản lý hơn các hàm UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
4 lồng nhauMã ví dụ
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...4
đầu ra
IDJavaScorePythonScore17772282873889645777Ví dụ này cho thấy
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
0. Thông thường, khi chúng tôi UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...34 vào một bảng cụ thể, nơi nó có thể gây ra sự trùng lặp trong chỉ mục
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...35 hoặc
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...36, nó sẽ gây ra lỗi
Tuy nhiên, MySQL cập nhật các bản ghi hiện có với các giá trị mới nhất nếu chúng tôi chỉ định
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...37. Nếu tìm thấy một bản sao trong
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...35, giá trị cho cột cụ thể đó sẽ được đặt thành giá trị hiện tại của nó
Mặc dù chức năng
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...39 đang hoạt động khi viết hướng dẫn này, nhưng nó hiển thị cảnh báo rằng chức năng
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...39 không được dùng nữa và sẽ bị xóa trong bản phát hành trong tương lai. Bạn có thể xem xét Tài liệu MySQL để được hỗ trợ thêm
Mã ví dụ
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ... WHERE condition3
Giải pháp này sẽ chỉ hoạt động nếu
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...41 bị tắt. Chúng ta có thể vô hiệu hóa nó trong MySQL Workbench bằng cách đi tới
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...42 và bỏ chọn tùy chọn
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...43
Sau đó, khởi động lại máy chủ MySQL, thực hiện truy vấn đã cho ở trên và sử dụng lệnh
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...44 để nhận được kết quả sau
đầu ra
IDJavaScorePythonScore17873283883899745878Chúng tôi thu thập dữ liệu bên trong
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
2 bằng cách sử dụng UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...46 và
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...47. Sau khi hoàn thành, chúng tôi nối tất cả dữ liệu bằng cách sử dụng
UPDATE students
SET JavaScore = [case
when ID = 1 then 75
when ID = 2 then 80
when ID = 3 then 86
when ID = 4 then 55
end],
PythonScore = [case
when ID = 1 then 70
when ID = 2 then 85
when ID = 3 then 94
when ID = 4 then 75
end]
WHERE ID in [1,2,3,4];
2 và đặt UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...41 và
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...42 cho mọi điều kiện thỏa mãn cho thuộc tính
UPDATE table-name SET column-name1 = value1, column-name2 = value2, ...40