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 中特定表的不同記錄進行隨機快速的排序。