MySQL の ORDER BY RAND

Preet Sanghavi 2023年1月30日
  1. MySQL で INSERT ステートメントを使用して student_dates テーブルにエントリを挿入する
  2. MySQL で ORDER BY ステートメントを使用して student_dates テーブルの値をランダムに並べ替える
MySQL の ORDER BY RAND

このチュートリアルでは、MySQL でテーブルの値またはレコードをランダムに並べ替えまたは並べ替える方法を理解します。

データ分析または視覚化に MySQL を使用するほとんどの企業や組織は、さまざまな基準に基づいてユーザーのさまざまなテーブル値を並べ替える必要があります。

MySQL テーブル内のさまざまなユーザーが正しくチェックされているかどうかをテストするための最も効率的な手法の 1つは、ユーザーにランダムにアクセスすることです。競合を回避し、特定のプラットフォームに基づいてユーザーをよりよく理解するのに役立ちます。

MySQL は、アナリストが RAND() 関数を使用してランダムレコードにアクセスするのを支援します。このステートメントをより深く理解してみましょう。

ただし、開始する前に、操作するダミーデータセットを作成します。ここでは、いくつかの行とともにテーブル student_dates を作成します。

-- create the table student_dates
CREATE TABLE student_dates(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_date date,
  primary key(stu_id)
);

MySQL で INSERT ステートメントを使用して student_dates テーブルにエントリを挿入する

前のクエリは、student_dates という名前のテーブルを作成します。INSERT ステートメントを使用して、数人の生徒のデータを追加してみましょう。この操作は次のように実行できます。

-- insert rows to the table student_dates
INSERT INTO student_dates(stu_id,stu_firstName,stu_date) 
 VALUES(1,"Preet",STR_TO_DATE('24-May-2005', '%d-%M-%Y')),
 (2,"Dhruv",STR_TO_DATE('14-June-2001', '%d-%M-%Y')),
 (3,"Mathew",STR_TO_DATE('13-December-2020', '%d-%M-%Y')),
 (4,"Jeet",STR_TO_DATE('14-May-2003', '%d-%M-%Y')),
 (5,"Steyn",STR_TO_DATE('19-July-2002', '%d-%M-%Y'));

上記のコードは、テーブル student_dates に学生データを入力します。

MySQL で ORDER BY ステートメントを使用して student_dates テーブルの値をランダムに並べ替える

上記のように、MySQL の order by ステートメントを使用して値を並べ替えることができます。このロジックを使用して、テーブル内のレコードをランダムに並べ替えることもできます。以下を使用して行うことができます。

SELECT * from name_of_the_table
ORDER BY RAND();

上記のように、すべてのテーブルレコードは、RAND() 関数を使用してランダムに並べ替えられます。これで、この概念を student_dates テーブルに適用できます。この操作は、次のクエリで実行できます。

SELECT * from student_dates
ORDER BY RAND();

前述のコードの出力は、次のように説明できます。

stu_id	stu_firstName	stu_date
5		Steyn			2002-07-19
3		Mathew			2020-12-13
4		Jeet			2003-05-14
1		Preet			2005-05-24
2		Dhruv			2001-06-14

前述のコードブロックでわかるように、すべての student_dates テーブルレコードはランダムに並べ替えられます。上記のクエリをさらに数回実行すると、出力は次のようになります。

stu_id	stu_firstName	stu_date
4		Jeet			2003-05-14
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
5		Steyn			2002-07-19

前述の出力ブロックからわかるように、値はランダムにソートされます。

したがって、ORDER BY ステートメントと RAND() 関数を使用すると、MySQL の特定のテーブルのさまざまなレコードをランダムに効率的に並べ替えることができます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub