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

MySQLでランダムな行または複数のランダムな行を取得するにはどうすればよいですか?


これにはRAND()メソッドを使用できます。ランダムな行を取得するには、次の構文を使用します

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

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです

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

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

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)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from gettingRandomRow;

以下は出力です

+------------+--------------+
| 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)

ランダムな行または複数のランダムな行を取得するためのクエリは次のとおりです。

ケース1 :クエリは次のとおりです-

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

以下は出力です

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

ケース2 :クエリは次のとおりです-

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

以下は出力です

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

ケース3 :クエリは次のとおりです-

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

以下は出力です

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

  1. クエリの結果をランダムに並べ替えて、MySQLでランダムな行を選択するにはどうすればよいですか?

    クエリの結果をランダムに並べ替えるには、ORDER BY RAND()を使用します。構文は次のとおりです- select * from DemoTable1559 where yourColumnName IN(yourValue1,yourValue2,....N) order by rand() limit yourLimitValue; まずテーブルを作成しましょう- mysql> create table DemoTable1559    -> (    -> EmployeeId int,    ->

  2. 行から特定の行を取得するためのMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable1972    (    Section char(1),    StudentName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1972 values('D','Chris'); Quer