HOWTO · MySQL
在 MySQL 中获取随机值
本教程演示了如何在 MySQL 中快速获取具有限制的随机值。
本页内容
本教程旨在了解如何在 MySQL 中对表的值或记录进行随机排序或排序。
大多数使用 MySQL 进行数据分析或可视化的企业和组织都需要根据不同的标准对其用户的不同表值进行排序。
测试是否正确检查了 MySQL 表中的不同用户的最有效技术之一是随机访问用户。它可以帮助避免冲突并基于特定平台更好地了解用户。
MySQL 使用 RAND() 函数帮助分析人员访问随机记录。此外,我们需要使用 LIMIT 关键字来使用 RAND() 语句快速获取数据。
例如,如果分析人员需要从超过 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
正如我们从上面块的输出中看到的,这些值是随机排序的。
现在,要使用设置为 random 函数的特定上限快速获取详细信息,我们可以使用上面建议的 LIMIT 关键字。可以使用以下语法执行此操作。
SELECT * from student_dates
ORDER BY RAND()
LIMIT 3;
如上面的查询所示,我们的目标是从我们的 student_dates 表中仅获取三个随机获取的记录。
输出:
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 中特定表的不同记录进行随机快速的排序。