Cập nhật TRƯỜNG HỢP MySQL

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)
  • LÀM 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 newpurchase 
SET receive_qty=25 
WHERE purch_price>50;

CẬ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 newpurchase 	
SET receive_qty=20,pub_lang='Hindi',pub_lang=NULL 
WHERE purch_price>50;

MySQL 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 newpurchase 
SET receive_qty=20,pub_lang='Hindi',receive_dt='2008-07-10' 
WHERE purch_price>50;

CẬ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  newpurchase 
SET purch_price=purch_price*.05
WHERE cate_id IN(SELECT cate_id 
FROM purchase 
WHERE receive_qty>10);

Cập nhật Bảng MySQL bằng PHP Script

Bạn có thể cập nhật dữ liệu bảng MySQL (sử 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

Cập nhật TRƯỜNG HỢP MySQL

Tập lệnh PHP

 

Đầu ra mẫu

Cập nhật TRƯỜNG HỢP MySQL

Nhiều cập nhật trong MySQL

bảng mẫu. Bảng 1

Cập nhật TRƯỜNG HỢP MySQL

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 table1 SET val1= CASE id 
                          WHEN 1 THEN 5 
                          WHEN 3 THEN 8 
                          WHEN 4 THEN 7 
                          ELSE val1
                        END, 
                 val2= CASE id 
                          WHEN 2 THEN 13 
                          WHEN 4 THEN 5 
                          ELSE val2 
                        END
             WHERE id IN (1, 2, 3, 4);

trình bày bằng hình ảnh

Cập nhật TRƯỜNG HỢP MySQL

Đầu ra mẫu

Cập nhật TRƯỜNG HỢP MySQL

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 -

MySQL> SELECT book_id,book_name,pub_lang,book_price
    -> FROM book_mast;
+--------+------------------------------------+---------+----------+
| book_id| book_name                          | pub_lang|book_price|
+--------+------------------------------------+---------+----------+
| BK001  | Introduction to Electrodynamics    | English |     85.00| 
| BK002  | Understanding of Steel Construction| English |    105.50| 
| BK003  | Guide to Networking                | Hindi   |    200.00| 
| BK004  | Transfer  of Heat and Mass         | English |    250.00| 
| BK005  | Conceptual Physics                 | NULL    |    145.00| 
| BK006  | Fundamentals of Heat               | German  |    112.00| 
| BK007  | Advanced 3d Graphics               | Hindi   |     56.00| 
| BK008  | Human Anatomy                      | German  |     50.50| 
| BK009  | Mental Health Nursing              | English |    145.00| 
| BK010  | Fundamentals of Thermodynamics     | English |    225.00| 
| BK011  | The Experimental Analysis of Cat   | French  |     95.00| 
| BK012  | The Nature  of World               | English |     88.00| 
| BK013  | Environment a Sustainable Future   | German  |    100.00| 
| BK014  | Concepts in Health                 | NULL    |    180.00| 
| BK015  | Anatomy & Physiology               | Hindi   |    135.00| 
| BK016  | Networks and Telecommunications    | French  |     45.00| 
+--------+------------------------------------+---------+----------+
16 rows in set (0.00 sec)

and 

MySQL> SELECT book_id,pub_lang,purch_price,total_cost
    -> FROM purchase;
+---------+----------+-------------+------------+
| book_id | pub_lang | purch_price | total_cost |
+---------+----------+-------------+------------+
| BK001   | English  |       75.00 |    1125.00 | 
| BK004   | English  |       55.00 |     440.00 | 
| BK005   | NULL     |       20.00 |     400.00 | 
| BK004   | English  |       35.00 |     525.00 | 
| BK001   | English  |       25.00 |     200.00 | 
| BK003   | Hindi    |       45.00 |     900.00 | 
+---------+----------+-------------+------------+
6 rows in set (0.02 sec)

Nếu chúng tôi 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 các hàng đó trong cả bảng book_mast và bảng mua hàng.

Làm cách nào để sử dụng câu lệnh tình huống trong CẬP NHẬT MySQL?

Câu lệnh CASE của MySQL . Vì vậy, khi một điều kiện là đúng, nó sẽ ngừng đọc và trả về kết quả. Nếu không có điều kiện nào đúng, nó sẽ trả về giá trị trong mệnh đề ELSE. The CASE statement goes through conditions and returns a value when the first condition is met (like an if-then-else statement). So, once a condition is true, it will stop reading and return the result. If no conditions are true, it returns the value in the ELSE clause.

Làm thế nào để viết điều kiện trường hợp trong MySQL?

Câu lệnh CASE duyệt qua các điều kiện và trả về giá trị khi điều kiện đầu tiên được đáp ứng (giống như câu lệnh IF-THEN-ELSE). Vì vậy, khi một điều kiện là đúng, nó sẽ ngừng đọc và trả về kết quả. Nếu không có điều kiện nào đúng, nó sẽ trả về giá trị trong mệnh đề ELSE

Làm cách nào để CẬP NHẬT bản ghi trong MySQL?

Để làm như vậy, bắt buộc phải sử dụng truy vấn CẬP NHẬT. Câu lệnh UPDATE được sử dụng với mệnh đề SET và WHERE. Mệnh đề SET được sử dụng để thay đổi giá trị của cột được chỉ định. .
CẬP NHẬT tên_bảng
SET cột_name1 = new-value1,
column_name2=new-value2,
[Mệnh đề WHERE]

Bạn có thể sử dụng chữ hoa chữ thường trong MySQL không?

MySQL CASE thường được sử dụng khi muốn đánh giá các giá trị cột đã cho theo các điều kiện đã cho hoặc trả về giá trị tùy chỉnh tùy thuộc vào cột hiện tại có giá trị được đánh giá theo một điều kiện nhất định. Điều này sẽ rõ ràng hơn với các ví dụ sẽ được thảo luận như một phần của hướng dẫn này