在 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