Hướng dẫn how do i update multiple records in mysql? - làm cách nào để cập nhật nhiều bản ghi trong mysql?

Bạn có một sinh viên bảng với

UPDATE students s
JOIN [
    SELECT 1 as id, 5 as new_score1, 8 as new_score2
    UNION ALL
    SELECT 2, 10, 8
    UNION ALL
    SELECT 3, 8, 3
    UNION ALL
    SELECT 4, 10, 7
] vals ON s.id = vals.id
SET score1 = new_score1, score2 = new_score2;
5,
UPDATE students s
JOIN [
    SELECT 1 as id, 5 as new_score1, 8 as new_score2
    UNION ALL
    SELECT 2, 10, 8
    UNION ALL
    SELECT 3, 8, 3
    UNION ALL
    SELECT 4, 10, 7
] vals ON s.id = vals.id
SET score1 = new_score1, score2 = new_score2;
6 và
UPDATE students s
JOIN [
    SELECT 1 as id, 5 as new_score1, 8 as new_score2
    UNION ALL
    SELECT 2, 10, 8
    UNION ALL
    SELECT 3, 8, 3
    UNION ALL
    SELECT 4, 10, 7
] vals ON s.id = vals.id
SET score1 = new_score1, score2 = new_score2;
7 như thế này, trong đó
UPDATE students s
JOIN [
    SELECT 1 as id, 5 as new_score1, 8 as new_score2
    UNION ALL
    SELECT 2, 10, 8
    UNION ALL
    SELECT 3, 8, 3
    UNION ALL
    SELECT 4, 10, 7
] vals ON s.id = vals.id
SET score1 = new_score1, score2 = new_score2;
5 là khóa chính:

Tôiscore1score2
1 10 9
2 8 3
3 10 6
4 4 8

Và đây là bảng dữ liệu mới mà bạn muốn cập nhật lên:

Tôiscore1score2
1 5 8
2 10 8
3 8 3
4 10 7

Và đây là bảng dữ liệu mới mà bạn muốn cập nhật lên:

Có một vài cách để làm điều đó.

UPDATE students SET score1 = 5, score2 = 8 WHERE id = 1;
UPDATE students SET score1 = 10, score2 = 8 WHERE id = 2;
UPDATE students SET score1 = 8, score2 = 3 WHERE id = 3;
UPDATE students SET score1 = 10, score2 = 7 WHERE id = 4;

1. Bạn có thể viết nhiều truy vấn cập nhật như thế này và chạy tất cả chúng cùng một lúc:

UPDATE students s
JOIN [
    SELECT 1 as id, 5 as new_score1, 8 as new_score2
    UNION ALL
    SELECT 2, 10, 8
    UNION ALL
    SELECT 3, 8, 3
    UNION ALL
    SELECT 4, 10, 7
] vals ON s.id = vals.id
SET score1 = new_score1, score2 = new_score2;

2. Hoặc bạn có thể cập nhật với câu lệnh tham gia:

INSERT INTO students 
    [id, score1, score2]
    VALUES 
        [1, 5, 8],
        [2, 10, 8],
        [3, 8, 3],
        [4, 10, 7]
    ON DUPLICATE KEY UPDATE 
        score1 = VALUES[score1],
    score2 = VALUES[score2];

3. Hoặc bạn có thể sử dụng

UPDATE students s
JOIN [
    SELECT 1 as id, 5 as new_score1, 8 as new_score2
    UNION ALL
    SELECT 2, 10, 8
    UNION ALL
    SELECT 3, 8, 3
    UNION ALL
    SELECT 4, 10, 7
] vals ON s.id = vals.id
SET score1 = new_score1, score2 = new_score2;
9

Cần một công cụ GUI tốt cho MySQL? TablePlus là một công cụ hiện đại, gốc với giao diện người dùng thanh lịch, cho phép bạn quản lý đồng thời nhiều cơ sở dữ liệu như MySQL, PostgreSQL, SQLite, Microsoft SQL Server, và hơn thế nữa.. It’s free anyway!

Tải xuống TablePlus cho Mac. Dù sao thì nó cũng miễn phí! Download TablePlus for Windows.

Không phải trên Mac? Tải xuống bảng cho Windows. Download TablePlus for Linux

Trên Linux? Tải xuống bảng cho Linux Download TablePlus for iOS.

Trong SQL, đôi khi chúng ta cần cập nhật nhiều bản ghi trong một truy vấn. Chúng tôi sẽ sử dụng từ khóa cập nhật để đạt được điều này. Đối với điều này, chúng tôi sử dụng 2 loại ví dụ, tức là chỉ dựa trên một điều kiện và loại thứ hai dựa trên nhiều điều kiện. Đối với bài viết này, chúng tôi sẽ sử dụng Microsoft SQL Server làm cơ sở dữ liệu của chúng tôi và chọn từ khóa.

Bước 1: Tạo cơ sở dữ liệu. Để sử dụng lệnh bên dưới để tạo cơ sở dữ liệu có tên GeekSforGeeks. Create a Database. For this use the below command to create a database named GeeksForGeeks.

Query:

CREATE DATABASE GeeksForGeeks

Output:

Bước 2: Sử dụng cơ sở dữ liệu GeekSforGeeks. Đối với điều này, sử dụng lệnh dưới đây. Use the GeeksForGeeks database. For this use the below command.

Query:

USE GeeksForGeeks

Output:

Bước 3: Tạo một bảng các dải bên trong cơ sở dữ liệu GeekSforGeeks. Bảng này có 3 cột cụ thể là Band_NAME, INFEMING_COST và NUMBER_OF_MEMBERS chứa tên, phí để thực hiện và số lượng thành viên của một ban nhạc. Create a table of BANDS inside the database GeeksForGeeks. This table has 3 columns namely BAND_NAME, PERFORMING_COST, and NUMBER_OF_MEMBERS containing the names, charges for performing, and the number of members of a band.

Query:

CREATE TABLE BANDS[
BAND_NAME VARCHAR[20],
PERFORMING_COST INT,
NUMBER_OF_MEMBERS INT];

Output:

Bước 4: Mô tả cấu trúc của các dải bảng. Describe the structure of the table BANDS.

Query:

EXEC SP_COLUMNS BANDS;

Output:

Bước 5: Chèn 5 hàng vào bảng dải. Insert 5 rows into the BANDS table.

Query:

INSERT INTO BANDS VALUES['INDIAN OCEAN',10000,5];
INSERT INTO BANDS VALUES['BTS',20000,6];
INSERT INTO BANDS VALUES['METALLICA',30000,10];
INSERT INTO BANDS VALUES['BEATLES',40000,4];
INSERT INTO BANDS VALUES['EAGLES',50000,4];

Output:

Bước 6: Hiển thị tất cả các hàng của bảng dải. Display all the rows of the BANDS table.

Query:

SELECT * FROM BANDS;

Output:

Bước 7: Cập nhật tất cả các bản ghi của các dải bảng chỉ thỏa mãn một điều kiện duy nhất. Điều kiện ở đây là giá trị của cột Number_of_Members phải nhỏ hơn 5. Nếu điều kiện được thỏa mãn thì giá trị của cột thực hiện_cost tự tăng gấp đôi. Sử dụng cập nhật từ khóa và nơi để đạt được điều này. Update all records of the table BANDS satisfying only a single condition. The condition here is that the value of the column NUMBER_OF_MEMBERS should be less than 5. If the condition is satisfied then the value of the column PERFORMING_COST doubles itself. Use the keyword UPDATE and WHERE to achieve this.

Syntax:

UPDATE TABLE_NAME SET COLUMN_NAME
= VALUE WHERE CONDITION;

Query:

UPDATE students s
JOIN [
    SELECT 1 as id, 5 as new_score1, 8 as new_score2
    UNION ALL
    SELECT 2, 10, 8
    UNION ALL
    SELECT 3, 8, 3
    UNION ALL
    SELECT 4, 10, 7
] vals ON s.id = vals.id
SET score1 = new_score1, score2 = new_score2;
0

Output:

Bước 8: Hiển thị tất cả các hàng của bảng công ty được cập nhật. Display all the rows of the updated FIRM table.

Query:

SELECT * FROM BANDS;

Lưu ý: Biểu diễn_cost đã được nhân đôi cho các ban nhạc có number_of_membersThe PERFORMING_COST has been doubled for the bands having NUMBER_OF_MEMBERS

Bài Viết Liên Quan

Chủ Đề