SELECT * FROM `table`
WHERE id >=(SELECT floor(RAND()*((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)))
ORDER BY id LIMIT 1;
JOIN
1 2 3 4
SELECT *
FROM `table` AS t1 JOIN(SELECT ROUND(RAND()*((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`))AS id)AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;
0 Responses to “提高mysql随机查询的效率”