Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để truy xuất một hàng ngẫu nhiên hoặc nhiều hàng ngẫu nhiên trong MySQL?

Bạn có thể sử dụng phương thức RAND () cho việc này. Để truy xuất một hàng ngẫu nhiên, hãy sử dụng cú pháp sau

SELECT *FROM yourTableName ORDER BY RAND() LIMIT yourIntegerNumber;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau

mysql> create table gettingRandomRow
   -> (
   -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> CustomerName varchar(100)
   -> );
Query OK, 0 rows affected (0.45 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into gettingRandomRow(CustomerName) values('Chris');
Query OK, 1 row affected (0.14 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Robert');
Query OK, 1 row affected (0.10 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Ramit');
Query OK, 1 row affected (0.15 sec)
mysql> insert into gettingRandomRow(CustomerName) values('James');
Query OK, 1 row affected (0.11 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Jace');
Query OK, 1 row affected (0.12 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Sam');
Query OK, 1 row affected (0.17 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Carol');
Query OK, 1 row affected (0.11 sec)
mysql> insert into gettingRandomRow(CustomerName) values('David');
Query OK, 1 row affected (0.16 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Maxwell');
Query OK, 1 row affected (0.14 sec)
mysql> insert into gettingRandomRow(CustomerName) values('Larry');
Query OK, 1 row affected (0.13 sec)
mysql> insert into gettingRandomRow(CustomerName) values('John');
Query OK, 1 row affected (0.11 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from gettingRandomRow;

Sau đây là kết quả

+------------+--------------+
| CustomerId | CustomerName |
+------------+--------------+
|          1 | Chris        |
|          2 | Robert       |
|          3 | Ramit        |
|          4 | James        |
|          5 | Jace         |
|          6 | Mike         |
|          7 | Sam          |
|          8 | Bob          |
|          9 | Carol        |
|         10 | David        |
|         11 | Maxwell      |
|         12 | Larry        |
|         13 | John         |
+------------+--------------+
13 rows in set (0.00 sec)

Đây là truy vấn để lấy một hàng ngẫu nhiên hoặc nhiều hàng ngẫu nhiên.

Trường hợp 1 :Truy vấn như sau -

mysql> select *from gettingRandomRow order by rand() LIMIT 1;

Sau đây là kết quả

+------------+--------------+
| CustomerId | CustomerName |
+------------+--------------+
|         13 | John         |
+------------+--------------+
1 row in set (0.00 sec)

Trường hợp 2 :Truy vấn như sau -

mysql> select *from gettingRandomRow order by rand() LIMIT 2;

Sau đây là kết quả

+------------+--------------+
| CustomerId | CustomerName |
+------------+--------------+
|          2 | Robert       |
|          3 | Ramit        |
+------------+--------------+
2 rows in set (0.00 sec)

Trường hợp 3 :Truy vấn như sau -

mysql> select *from gettingRandomRow order by rand() LIMIT 2;

Sau đây là kết quả

+------------+--------------+
| CustomerId | CustomerName |
+------------+--------------+
|          4 | James        |
|         9 | Carol         |
+------------+--------------+
2 rows in set (0.00 sec)