Nếu bạn có cột ID, tốt hơn nên thực hiện:
-- create a variable to hold the random number
SET @rownum := SELECT count(*) FROM table;
SET @row := (SELECT CEIL((rand() * @rownum));
-- use the random number to select on the id column
SELECT * from tablle WHERE id = @row;
Logic của việc chọn số id ngẫu nhiên có thể được chuyển sang cấp ứng dụng.
SELECT * FROM table ORDER BY RAND LIMIT 40
rất kém hiệu quả vì MySQL sẽ xử lý TẤT CẢ các bản ghi trong bảng thực hiện quét toàn bộ bảng trên tất cả các hàng, sắp xếp chúng một cách ngẫu nhiên.