MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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


クエリでORDERBY句とLIMIT句の両方とともにRAND()関数を使用すると、MySQLは毎回異なる行または値のセットを返します。それを理解するために、次のレコードを持つテーブル「従業員」を考慮します-

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)

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


  1. MySQLでコンマ区切り値のテーブル内を検索するにはどうすればよいですか?

    カンマ区切り値のテーブル内を検索するには、LIKE演算子を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable675(Value text); Query OK, 0 rows affected (0.55 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable675 values('10,56,49484,93993,211,4594'); Query OK, 1 row affected (0.28 sec) mysql> i

  2. MySQLで自動インクリメント値を1から開始するように設定するにはどうすればよいですか?

    テーブルを切り捨てて、MySQLでauto_increment値を1から開始するように設定できます。まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY ); Query OK, 0 rows affected (1.44 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(); Query OK, 1 row aff