Cập nhật nhiều cột từ một bảng mysql khác

Bản tóm tắt. cập nhật dữ liệu là một trong những công việc quan trọng nhất khi bạn làm việc với cơ sở dữ liệu. Trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 để cập nhật dữ liệu trong bảng

Giới thiệu về câu lệnh MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2

Câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 cập nhật dữ liệu trong một bảng. Nó cho phép bạn thay đổi các giá trị trong một hoặc nhiều cột của một hàng hoặc nhiều hàng

Sau đây minh họa cú pháp cơ bản của câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]

Trong cú pháp này

  • Đầu tiên, chỉ định tên của bảng mà bạn muốn cập nhật dữ liệu sau từ khóa

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    2
  • Thứ hai, chỉ định cột nào bạn muốn cập nhật và giá trị mới trong mệnh đề

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    7. Để cập nhật giá trị trong nhiều cột, bạn sử dụng danh sách các phép gán được phân tách bằng dấu phẩy bằng cách cung cấp một giá trị trong phép gán của mỗi cột ở dạng giá trị bằng chữ, biểu thức hoặc truy vấn con
  • Thứ ba, chỉ định những hàng nào sẽ được cập nhật bằng cách sử dụng một điều kiện trong mệnh đề

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    8. Mệnh đề

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    9 là tùy chọn. Nếu bạn bỏ qua nó, câu lệnh

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    2 sẽ sửa đổi tất cả các hàng trong bảng

Lưu ý rằng điều khoản 

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
9 quan trọng đến mức bạn không được quên. Đôi khi, bạn có thể chỉ muốn cập nhật một hàng;

MySQL hỗ trợ hai công cụ sửa đổi trong câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2

  1. Công cụ sửa đổi

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    34 hướng dẫn câu lệnh

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    2 trì hoãn cập nhật cho đến khi không có kết nối đọc dữ liệu từ bảng.

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    34 có hiệu lực đối với các công cụ lưu trữ chỉ sử dụng khóa cấp độ bảng, chẳng hạn như

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    37,

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    38 và

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    39
  2. Công cụ sửa đổi

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    90 cho phép câu lệnh

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    2 tiếp tục cập nhật các hàng ngay cả khi xảy ra lỗi. Các hàng gây ra lỗi như xung đột khóa trùng lặp không được cập nhật

MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 ví dụ

Hãy thực hành câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2

1] Sử dụng MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 để sửa đổi các giá trị trong một ví dụ về một cột

Xem bảng

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
95 sau đây từ cơ sở dữ liệu mẫu

Trong ví dụ này, chúng tôi sẽ cập nhật email của ________ 196 thành email mới ________ 197

Đầu tiên, tìm email của Mary từ bảng

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
95 bằng cách sử dụng câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
99 sau

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]

Thứ hai, cập nhật địa chỉ email của

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
0 thành email mới

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
1.

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
3

MySQL đã ban hành số lượng hàng bị ảnh hưởng

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
9

Trong tuyên bố

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 này

  • Mệnh đề

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    8 chỉ định hàng có mã số nhân viên

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    4 sẽ được cập nhật
  • Mệnh đề

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    7 đặt giá trị của cột

    SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

    Code language: SQL [Structured Query Language] [sql]
    6 cho email mới

Thứ ba, thực hiện lại câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
7 để xác minh thay đổi

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]

2] Sử dụng MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 để sửa đổi giá trị trong nhiều cột

Để cập nhật các giá trị trong nhiều cột, bạn cần chỉ định các phép gán trong mệnh đề

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
7. Ví dụ: câu lệnh sau cập nhật cả cột họ và email của nhân viên số 1056

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]
3

Hãy xác minh những thay đổi

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]

3] Sử dụng MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 để thay thế chuỗi ví dụ

Ví dụ sau cập nhật các phần tên miền của email của tất cả

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]
31 với mã văn phòng

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]
32

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]
8

Trong ví dụ này, hàm

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]
33 thay thế

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]
34 trong cột email bằng

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, ... [WHERE condition];

Code language: SQL [Structured Query Language] [sql]
35

4] Sử dụng MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 để cập nhật các hàng được trả về bởi một ví dụ về câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
7

Bạn có thể cung cấp các giá trị cho mệnh đề

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
7 từ câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
7 truy vấn dữ liệu từ các bảng khác

Ví dụ: trong bảng

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
0, một số khách hàng không có bất kỳ đại diện bán hàng nào. Giá trị của cột

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
1 là

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 như sau

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
9

Chúng tôi có thể thuê đại diện bán hàng và cập nhật thông tin cho những khách hàng đó.

Để làm điều này, chúng ta có thể chọn một nhân viên ngẫu nhiên có chức danh công việc là

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
3 từ bảng  

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
95 và cập nhật nó cho bảng  

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
95

Truy vấn này chọn một nhân viên ngẫu nhiên từ bảng

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
95 có chức danh công việc là

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
3

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
5

Để cập nhật cột mã số nhân viên đại diện bán hàng trong bảng

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
0, chúng tôi đặt truy vấn ở trên trong mệnh đề

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
7 của câu lệnh

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 như sau

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
0

Nếu bạn truy vấn dữ liệu từ bảng  

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
95, bạn sẽ thấy rằng mọi khách hàng đều có một đại diện bán hàng. Nói cách khác, truy vấn sau không trả về hàng nào

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
1

Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh MySQL

SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;

Code language: SQL [Structured Query Language] [sql]
2 để cập nhật dữ liệu trong bảng cơ sở dữ liệu

Làm cách nào để CẬP NHẬT nhiều cột trong nhiều bảng trong SQL?

Đầu tiên, chỉ định tên bảng mà bạn muốn thay đổi dữ liệu trong mệnh đề CẬP NHẬT. Thứ hai, gán một giá trị mới cho cột mà bạn muốn cập nhật. Trong trường hợp bạn muốn cập nhật dữ liệu ở nhiều cột, cặp cột = giá trị cách nhau bởi dấu phẩy [,] . Thứ ba, chỉ định những hàng bạn muốn cập nhật trong mệnh đề WHERE.

Làm cách nào tôi có thể CẬP NHẬT dữ liệu từ bảng này sang bảng khác trong MySQL?

Làm cách nào để cập nhật dữ liệu từ bảng này sang bảng khác? .
Tạo truy vấn Chọn tiêu chuẩn
Chọn Truy vấn → Cập nhật để thay đổi loại truy vấn thành truy vấn hành động cập nhật
Kéo trường sẽ được cập nhật trong bảng đích vào lưới truy vấn
Tùy chọn chỉ định tiêu chí để giới hạn các hàng được cập nhật

Bạn có thể CẬP NHẬT trên nhiều bảng trong MySQL không?

Để tránh sự cố này, hãy thêm mệnh đề ORDER BY để cập nhật các hàng có giá trị id lớn hơn trước các hàng có giá trị nhỏ hơn. UPDATE t SET id = id + 1 ORDER BY id DESC; . Tuy nhiên, bạn không thể sử dụng ORDER BY hoặc LIMIT với CẬP NHẬT nhiều bảng. You can also perform UPDATE operations covering multiple tables. However, you cannot use ORDER BY or LIMIT with a multiple-table UPDATE .

Chúng ta có thể CẬP NHẬT nhiều hàng trong một câu lệnh CẬP NHẬT duy nhất trong MySQL không?

Chúng ta có thể cập nhật nhiều hàng của bảng bằng một lệnh cập nhật duy nhất .

Chủ Đề