在 MySQL 中按 RAND 排序
Preet Sanghavi
2023年1月30日
在本教程中,我们将了解如何在 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