Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

UPDATE คอลัมน์ด้วยสุ่มตัวเลข 1-3 ใน MySQL ด้วย RAND() และ FLOOR()

อัปเดตข้อมูลด้วยค่าสุ่มในช่วงที่กำหนด

ใช้ FLOOR(1 + RAND() * 3) สร้างเลขสุ่ม 1, 2, 3 แล้วนำไปใช้ใน WHERE clause ของ UPDATE

รูปแบบคำสั่ง (Syntax)

UPDATE yourTableName 
SET yourColumnName = new_value 
WHERE yourColumnName2 = (SELECT FLOOR(1 + RAND() * 3));

ตัวอย่างการใช้งาน

สร้างตาราง updateRowWith1To3:

CREATE TABLE updateRowWith1To3 (
    Id INT,
    Name VARCHAR(100)
);

INSERT INTO updateRowWith1To3 VALUES 
(1, 'John'), (2, 'Sam'), (3, 'Carol'),
(4, 'Mike'), (5, 'Bob'), (6, 'David');

อัปเดต Name เป็น 'Mary' ที่ Id สุ่ม 1-3:

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

ผลลัพธ์ตัวอย่าง (สุ่มได้ Id=1):

IdName
1Mary
2Sam
3Carol
4Mike
5Bob
6David

การสร้างสุ่มในช่วงอื่นๆ

ช่วงสูตร
1 ถึง NFLOOR(1 + RAND() * N)
M ถึง NFLOOR(M + RAND() * (N - M + 1))
0 ถึง 1 (ทศนิยม)RAND()

ข้อควรระวัง: Subquery ใน WHERE จะถูกประเมินครั้งเดียวต่อคำสั่ง UPDATE ทั้งคำสั่ง ไม่ได้สุ่มใหม่ต่อแถว