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

สั่งซื้อแบบสุ่มใน MySQL ด้วยคอลัมน์ค่าสุ่ม?


ให้เราสร้างตารางก่อน หลังจากนั้นเราจะสร้างคอลัมน์ค่าสุ่มใหม่และเรียงลำดับแบบสุ่ม:

mysql> สร้างตาราง DemoTable ( StudentId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20)); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.57 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก:

mysql> แทรกลงในค่า DemoTable(StudentName) ('Larry');Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงในค่า DemoTable(StudentName) ('Sam'); Query OK, 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า DemoTable (StudentName) ('Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.34 วินาที) mysql> แทรกลงในค่า DemoTable (StudentName) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.13 วินาที) mysql> แทรกลงในค่า DemoTable (StudentName) ('Robert'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable (StudentName) ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนจากตารางโดยใช้คำสั่ง select:

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

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

นี่คือแบบสอบถามที่จะสั่งซื้อโดยฟิลด์สุ่ม เราได้สร้างช่องสุ่มใหม่ที่นี่:

mysql> SELECT *FROM (SELECT StudentName, RAND()+1 AS randomRecordFROM DemoTable) tblORDER BY RandomRecord DESC;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

<ก่อนหน้า>+-------------+--------------------+| ชื่อนักเรียน | RandomRecord |+-------------+--------------------+| แครอล | 1.8973721451101566 || คริส | 1.7821308670399065 || ไมค์ | 1.640037673190271 || แลร์รี่ | 1.4134691557041081 || แซม | 1.1408822407395414 || โรเบิร์ต | 1.0948494543273461 |+--------------------+--------------------+6 แถวในชุด (0.00 วินาที)