MySQL でランダムな値を取得する
-
INSERT
ステートメントを使用したstudent_dates
テーブルへのエントリの挿入 -
ORDER BY
ステートメントを使用してstudent_dates
テーブルの値をランダムに取得する
このチュートリアルは、MySQL でテーブルの値またはレコードをランダムに並べ替えまたは並べ替える方法を理解することを目的としています。
データ分析または視覚化に MySQL を使用するほとんどの企業や組織は、さまざまな基準に基づいてユーザーのさまざまなテーブル値を並べ替える必要があります。
MySQL テーブル内のさまざまなユーザーが正しくチェックされているかどうかをテストするための最も効率的な手法の 1つは、ユーザーにランダムにアクセスすることです。競合を回避し、特定のプラットフォームに基づいてユーザーをよりよく理解するのに役立ちます。
MySQL は、アナリストが RAND()
関数を使用してランダムレコードにアクセスするのを支援します。さらに、RAND()
ステートメントを使用してデータをすばやくフェッチするには、LIMIT
キーワードを使用する必要があります。
たとえば、アナリストが 100,000 レコードを超えるテーブルから 10 レコードをすばやくフェッチする必要がある場合は、LIMIT
キーワードを指定して 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)
);
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
に学生データを入力します。このテーブルは、次のコマンドで視覚化できます。
SELECT * from student_dates;
出力:
stu_id stu_firstName stu_date
1 Preet 2005-05-24
2 Dhruv 2001-06-14
3 Mathew 2020-12-13
4 Jeet 2003-05-14
5 Steyn 2002-07-19
ORDER BY
ステートメントを使用して student_dates
テーブルの値をランダムに取得する
上記のように、MySQL の sort 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
上記のブロックの出力からわかるように、値はランダムに並べ替えられます。
ここで、ランダム関数に特定の上限を設定して詳細をすばやくフェッチするために、上記のように LIMIT
キーワードを使用できます。この操作は、次の構文で実行できます。
SELECT * from student_dates
ORDER BY RAND()
LIMIT 3;
上記のクエリに示されているように、student_dates
テーブルからランダムにフェッチされた 3つのレコードのみをフェッチすることを目的としています。
出力:
stu_id stu_firstName stu_date
2 Dhruv 2001-06-14
1 Preet 2005-05-24
3 Mathew 2020-12-13
したがって、ORDER BY
ステートメントと RAND()
関数、および LIMIT
キーワードを使用すると、MySQL の特定のテーブルのさまざまなレコードをランダムかつ迅速に効率的に並べ替えることができます。