如何從 MySQL 表中每次得到一組不同的隨機行或值?
當我們在一個查詢中同時使用 RAND() 函式和 ORDER BY、LIMIT 子句時,MySQL 每次都會返回不同的行或值集合。為了理解它,請考慮一張表“Employee”,它有以下記錄 -
mysql> Select * from Employee; +----+--------+--------+ | ID | Name | Salary | +----+--------+--------+ | 1 | Gaurav | 50000 | | 2 | Rahul | 20000 | | 3 | Advik | 25000 | | 4 | Aarav | 65000 | | 5 | Ram | 20000 | | 6 | Mohan | 30000 | | 7 | Aryan | NULL | | 8 | Vinay | NULL | +----+--------+--------+ 8 rows in set (0.00 sec)
現在,下面的查詢將在一個查詢中同時使用 ORDER BY、LIMIT 子句和 RAND() 函式,返回隨機不同的值或行集合 -
mysql> Select * from employee ORDER BY RAND() LIMIT 4; +----+-------+--------+ | ID | Name | Salary | +----+-------+--------+ | 5 | Ram | 20000 | | 4 | Aarav | 65000 | | 6 | Mohan | 30000 | | 8 | Vinay | NULL | +----+-------+--------+ 4 rows in set (0.00 sec) mysql> Select * from employee ORDER BY RAND() LIMIT 4; +----+--------+--------+ | ID | Name | Salary | +----+--------+--------+ | 6 | Mohan | 30000 | | 8 | Vinay | NULL | | 2 | Rahul | 20000 | | 1 | Gaurav | 50000 | +----+--------+--------+ 4 rows in set (0.03 sec) mysql> Select * from employee ORDER BY RAND() LIMIT 4; +----+-------+--------+ | ID | Name | Salary | +----+-------+--------+ | 3 | Advik | 25000 | | 8 | Vinay | NULL | | 7 | Aryan | NULL | | 5 | Ram | 20000 | +----+-------+--------+ 4 rows in set (0.00 sec)
從上述結果集中可以看出,每次執行查詢時,它都會返回一組不同的隨機值或行。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP