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

UPDATE cột với số ngẫu nhiên 1-3 trong MySQL?

Sử dụng RAND() kết hợp FLOOR() để sinh số nguyên ngẫu nhiên trong khoảng.

Công thức số nguyên [min, max]: FLOOR(min + RAND() * (max - min + 1)). Với 1-3: FLOOR(1 + RAND() * 3).

Cú pháp UPDATE:

UPDATE ten_bang SET ten_cot = 'gia_tri_moi' WHERE ten_cot_id = (SELECT FLOOR(1 + RAND() * 3));

Ví dụ: Cập nhật tên ngẫu nhiên 1 hàng (Id 1-3) thành 'Mary':

CREATE TABLE updateRowWith1To3 (Id INT, Name VARCHAR(100));
INSERT INTO updateRowWith1To3 VALUES (1,'John'), (2,'Sam'), (3,'Carol'), (4,'Mike'), (5,'Bob'), (6,'David');

Thực thi:

UPDATE updateRowWith1To3 SET Name = 'Mary' WHERE Id = (SELECT FLOOR(1 + RAND() * 3));

Kết quả (ví dụ Id=1 được chọn)

+------+-------+
| Id   | Name  |
+------+-------+
|    1 | Mary  |
|    2 | Sam   |
|    3 | Carol |
|    4 | Mike  |
|    5 | Bob   |
|    6 | David |
+------+-------+

Lưu ý: Subquery (SELECT FLOOR(1+RAND()*3)) được tính toán 1 lần cho toàn câu UPDATE. Nếu muốn cập nhật nhiều hàng với giá trị ngẫu nhiên khác nhau mỗi hàng, cần dùng teknik khác (ví dụ: JOIN với derived table sinh số ngẫu nhiên).