Mysql 简明教程
MySQL - Select Random Records
您是否曾经参加过在线考试?如果是,那么您是否有想过这些问题显示的顺序是如何随机的?这些问题通常存储在测试应用程序的数据库中,并逐个随机显示。
在应用程序中使用数据库时,会出现需要从表对象中随机选择记录的情况。MySQL 没有为此提供内置功能。
Selecting Random Records in MySQL
为了在 MySQL 中选择随机记录,可以使用 ORDER BY RAND() 子句。RAND() 函数与 SELECT 查询一起用于一个接一个或同时批量检索存储的数据。
The MySQL RAND() Function
MySQL RAND() 函数返回一个结果集,其中包含原始表中的所有记录,并按完全随机顺序排列。它通常与 ORDER BY 子句中的 SELECT 语句一起使用。
Example
以下示例演示了与 ORDER BY 子句一起使用 RAND() 函数的情况。此处,我们首先创建一个表“CUSTOMERS”并向其中插入一些值。
CREATE TABLE CUSTOMERS(
ID int NOT NULL AUTO_INCREMENT,
NAME varchar(20),
AGE int,
PRIMARY KEY(Id)
);
现在,使用如下所示的 INSERT 语句向此表中插入值:
INSERT INTO CUSTOMERS (NAME, AGE) VALUES ('John',23);
INSERT INTO CUSTOMERS (NAME, AGE) VALUES ('Larry',21);
INSERT INTO CUSTOMERS (NAME, AGE) VALUES ('David',21);
INSERT INTO CUSTOMERS (NAME, AGE) VALUES ('Carol',24);
INSERT INTO CUSTOMERS (NAME, AGE) VALUES ('Bob',27);
INSERT INTO CUSTOMERS (NAME, AGE) VALUES ('Mike',29);
INSERT INTO CUSTOMERS (NAME, AGE) VALUES ('Sam',26);
获得的 CUSTOMERS 表如下:−
现在,让我们使用 RAND() 函数结合 SELECT 语句以随机顺序检索 CUSTOMERS 表的记录:
SELECT * FROM CUSTOMERS ORDER BY RAND();