ในการเลือกแถวสุ่ม ให้ใช้ rand() กับ LIMIT จาก MySQL ไวยากรณ์มีดังนี้:
เลือก * จาก yourTableName ORDER BY RAND() LIMIT 1;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:
mysql> สร้างตาราง generateRandomRow -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(20), -> Age int, -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ ( 1.66 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:
mysql> แทรกลงใน generateRandomRow(Name,Age) values('John',23);Query OK, 1 แถวได้รับผลกระทบ (0.22 sec)mysql> แทรกใน generateRandomRow(Name,Age) values('Larry',21);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.32 วินาที)mysql> แทรกลงใน generateRandomRow(ชื่อ,อายุ) ค่า ('David',21); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.39 วินาที)mysql> แทรกลงใน generateRandomRow (ชื่อ, อายุ) values('Carol',24);Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงใน generateRandomRow(Name,Age) values('Bob',27);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกค่า createRandomRow(Name,Age) ('Mike',29);Query OK, 1 แถวที่ได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน generateRandomRow(Name,Age) values('Sam',26);Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก *จาก generateRandomRow;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+---------+------+| รหัส | ชื่อ | อายุ |+----+-------+------+| 1 | จอห์น | 23 || 2 | แลร์รี่ | 21 || 3 | เดวิด | 21 || 4 | แครอล | 24 || 5 | บ๊อบ | 27 || 6 | ไมค์ | 29 || 7 | แซม | 26 |+----+-------+------+7 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อเลือกแถวสุ่มจากตารางโดยใช้ rand() แบบสอบถามมีดังนี้:
mysql> เลือก *จากคำสั่ง generateRandomRow โดย rand() จำกัด 1;
ผลลัพธ์จะแสดงแถวสุ่ม:
<ก่อนหน้า>+----+------+------+| รหัส | ชื่อ | อายุ |+----+------+------+| 5 | บ๊อบ | 27 |+---+------+------+1 แถวในชุด (0.00 วินาที)เมื่อเราเรียกใช้แบบสอบถามอีกครั้ง แถวสุ่มต่อไปนี้จะมองเห็นได้:
mysql> เลือก *จากคำสั่ง generateRandomRow โดย rand() จำกัด 1;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+------+------+| รหัส | ชื่อ | อายุ |+----+------+------+| 6 | ไมค์ | 29 |+----+------+------+1 แถวในชุด (0.00 วินาที)