ホームページ  >  記事  >  データベース  >  MySQL テーブルから毎回異なる行または値のセットをランダムに取得するにはどうすればよいでしょうか?

MySQL テーブルから毎回異なる行または値のセットをランダムに取得するにはどうすればよいでしょうか?

PHPz
PHPz転載
2023-08-28 23:29:09927ブラウズ

我们如何每次从 MySQL 表中随机获取不同的行或值集?

クエリ内で ORDER BY 句および LIMIT 句を指定して RAND() 関数を使用すると、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)

さて、次のクエリでは RAND() 関数を使用し、クエリ内で ORDER BY 句と LIMIT 句の両方を使用して、ランダムな異なるセットを返します。値または行 -

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)

上記の結果セットからわかるように、クエリを実行するたびに、ランダムに異なる値または行のセットが返されます。

以上がMySQL テーブルから毎回異なる行または値のセットをランダムに取得するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。