ใช้ ORDER BY RAND() ร่วมกับ LIMIT เพื่อสุ่มข้อมูล
คำสั่งหลัก
select * from yourTableName order by rand() limit 2;
ตัวอย่างเต็ม
mysql> create table DemoTable (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientFirstName varchar(20)
);
Query OK, 0 rows affected (0.64 sec)
mysql> insert into DemoTable(ClientFirstName) values('Robert'); Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable(ClientFirstName) values('Chris'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(ClientFirstName) values('Jace'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(ClientFirstName) values('James'); Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable(ClientFirstName) values('David'); Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable(ClientFirstName) values('John'); Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(ClientFirstName) values('Mike'); Query OK, 1 row affected (0.14 sec)
ข้อมูลทั้งหมด
mysql> select * from DemoTable;
+----+-----------------+ | Id | ClientFirstName | +----+-----------------+ | 1 | Robert | | 2 | Chris | | 3 | Jace | | 4 | James | | 5 | David | | 6 | John | | 7 | Mike | +----+-----------------+
สุ่ม 2 แถว
mysql> select * from DemoTable order by rand() limit 2;
+----+-----------------+ | Id | ClientFirstName | +----+-----------------+ | 4 | James | | 2 | Chris | +----+-----------------+
หมายเหตุ: ORDER BY RAND() อาจช้าเมื่อตารางมีข้อมูลมาก สำหรับตารางใหญ่ควรใช้วิธีอื่น เช่นสุ่มค่า ID แล้ว查询