最近项目中用到随机取数据表中任意一条数据,既然用到了就记录下来,以便下次查阅。
1、查询效率低的
SELECT *
FROM table_name
ORDER BY RAND()
LIMIT 1
2、查询效率高的
SELECT *
FROM table_name AS t1
JOIN
(
SELECT ROUND(RAND() *
(
(SELECT MAX(id) FROM table_name)
-
(SELECT MIN(id) FROM table_name)
)
+
(SELECT MIN(id) FROM table_name )
) AS id
) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id
LIMIT 1