在 MySQL 中按 RAND 排序

Preet Sanghavi 2023年1月30日 2022年5月13日
  1. 在 MySQL 中使用 INSERT 語句在 student_dates 表中插入條目
  2. 在 MySQL 中使用 ORDER BY 語句對 student_dates 表的值進行隨機排序
在 MySQL 中按 RAND 排序

在本教程中,我們將瞭解如何在 MySQL 中對錶的值或記錄進行隨機排序或排序。

大多數使用 MySQL 進行資料分析或視覺化的企業和組織都需要根據不同的標準對其使用者的不同表值進行排序。

測試是否正確檢查了 MySQL 表中的不同使用者的最有效技術之一是隨機訪問使用者。它可以幫助避免衝突並基於特定平臺更好地瞭解使用者。

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