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

วิธีเลือก 2 แถวแบบสุ่มจากฐานข้อมูล MySQL

ใช้ 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 แล้ว查询