前言

在很多应用场景下,我们需要从数据库表中随机获取一条或者多条记录。这里主要介绍对比两个方法。

简单方法(不高效)

SELECT * FROM table_name ORDER BY RAND() LIMIT 1;

高效方法

SELECT t1.id,t1.word,t1.status FROM hy_idiom AS t1 JOIN 
(SELECT ROUND(RAND() * ((SELECT MAX(id) FROM hy_idiom 
where status=1)-(SELECT MIN(id) FROM hy_idiom 
where status=1))+(SELECT MIN(id) FROM hy_idiom  
where status=1 )) AS id) AS t2 WHERE t1.id >= t2.id AND t1.status=1 
ORDER BY t1.id LIMIT 5 ;

LIMIT 5 表示取出5条记录,可根据需要对SQL语句进行修改即可使用

Last modification:July 29, 2022
If you think my article is useful to you, please feel free to appreciate