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

MySQLでは、結果セットの行または値のセットをランダム化するにはどうすればよいですか?


ORDER BY句とともに使用されるRAND()関数を使用すると、行または値のセットを結果セットでランダム化できます。それを理解するために、次のレコードを持つテーブル「従業員」を考慮します-

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 BT RAND()を使用して、結果セットの行のセットをシャッフルします-

mysql> Select * from Employee ORDER BY RAND();
+----+--------+--------+
| ID | Name   | Salary |
+----+--------+--------+
| 4  | Aarav  | 65000  |
| 1  | Gaurav | 50000  |
| 3  | Advik  | 25000  |
| 7  | Aryan  | NULL   |
| 6  | Mohan  | 30000  |
| 8  | Vinay  | NULL   |
| 5  | Ram    | 20000  |
| 2  | Rahul  | 20000  |
+----+--------+--------+
8 rows in set (0.00 sec)

  1. 行の値を合計して結果を並べ替えるMySQLクエリ?

    このために、ORDERBY句とともにGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1499    -> (    -> StudentName varchar(20),    -> StudentMarks int    -> ); Query OK, 0 rows affected (0.46 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert in

  2. MySQLの結果セットを指定されたものと同じにする方法は?

    これには、MySQL FIND_IN_SET()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1563    -> (    -> StudentId int,    -> StudentName varchar(20)    -> ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into De