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

MySQL อัปเดตคอลัมน์ที่เกี่ยวข้องด้วยตัวเลขสุ่มระหว่าง 1-3 หรือไม่


สำหรับตัวเลขสุ่มในช่วง คุณต้องใช้เมธอด RAND() จาก MySQL ไวยากรณ์ดังต่อไปนี้สำหรับการปรับปรุง −

อัปเดต yourTableName ตั้งค่า yourColumnName=value โดยที่ yourColumnName2=(SELECTFLOOR(1+RAND()*3));

ในแบบสอบถามข้างต้น คำสั่ง FLOOR(1+RAND()*3) จะสร้างตัวเลขระหว่าง 1-3 และอัปเดตคอลัมน์

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง updateRowWith1To3 -> ( -> Id int, -> Name varchar(100) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.47 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า updateRowWith1To3 (1,'John'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.24 วินาที)mysql> แทรกลงในค่า updateRowWith1To3 (2,'Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> แทรกลงในค่า updateRowWith1To3 (3, 'Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า updateRowWith1To3 (4, 'Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า updateRowWith1To3 (5,'Bob');Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> แทรกลงในค่า updateRowWith1To3 (6,'David'); Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก updateRowWith1To3;

ผลลัพธ์

<ก่อนหน้า>+------+-------+| รหัส | ชื่อ |+------+-------+| 1 | จอห์น || 2 | แซม || 3 | แครอล || 4 | ไมค์ || 5 | บ๊อบ || 6 | David |+------+-------+6 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่สามารถใช้เพื่ออัปเดตชื่อคอลัมน์ด้วยตัวเลขสุ่มระหว่าง 1-3 -

mysql> อัปเดต updateRowWith1To3 set Name='Mary' โดยที่ Id=(select floor( 1 + RAND( ) *3));Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)แถวที่ตรงกัน:1 เปลี่ยนแล้ว:1 คำเตือน:0 

ตอนนี้คุณสามารถตรวจสอบตาราง ชื่อคอลัมน์จะได้รับการอัปเดตโดย Mary ระหว่าง 1-3 แบบสอบถามเพื่อตรวจสอบบันทึกจากตารางมีดังนี้ −

mysql> เลือก *จาก updateRowWith1To3;

ผลลัพธ์

<ก่อนหน้า>+------+-------+| รหัส | ชื่อ |+------+-------+| 1 | แมรี่ || 2 | แซม || 3 | แครอล || 4 | ไมค์ || 5 | บ๊อบ || 6 | David |+------+-------+6 แถวในชุด (0.00 วินาที)