Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Viết truy vấn MySQL hợp lệ và cập nhật với biến tùy chỉnh

Giới thiệu

Biến người dùng (user-defined variable) trong MySQL có thể được sử dụng trong câu lệnh UPDATE để tính toán giá trị mới dựa trên trạng thái trước đó của biến. Điều này cho phép tạo ra các dãy số tăng dần, đánh số thứ tự, v.v.

Ví dụ minh họa: Cập nhật cột UserId thành dãy số tăng 10 đơn vị

Bước 1: Tạo bảng và chèn dữ liệu

CREATE TABLE DemoTable2027 (UserId INT);
INSERT INTO DemoTable2027 VALUES (10), (20), (31), (11);

Bước 2: Khởi tạo biến và cập nhật

SET @uId := 100;
UPDATE DemoTable2027
SET UserId = (@uId := @uId + 10);

Giải thích: Biến @uId bắt đầu từ 100. Với mỗi hàng được cập nhật, biểu thức (@uId := @uId + 10) gán giá trị mới cho biến và đồng thời trả về giá trị đó để gán vào cột UserId.

Bước 3: Kết quả

SELECT * FROM DemoTable2027;
+--------+
| UserId |
+--------+
| 110    |
| 120    |
| 130    |
| 140    |
+--------+

⚠️ Cảnh quan trọng: Thứ tự cập nhật các hàng trong UPDATE không được đảm bảo nếu không có ORDER BY (MySQL không hỗ trợ ORDER BY trong UPDATE nhiều bảng, nhưng đơn bảng thì được). Để đảm bảo thứ tự, hãy dùng:

UPDATE DemoTable2027
SET UserId = (@uId := @uId + 10)
ORDER BY UserId; -- hoặc cột khác xác định thứ tự