Cách tốt nhất tôi đã tìm thấy để chọn bất kỳ số lượng bản ghi ngẫu nhiên nào là sử dụng OFFSET trong truy vấn.
Giả sử bạn muốn có 6 bản ghi ngẫu nhiên, vì vậy tôi sẽ mượn một câu trả lời ở trên và đếm tổng số bạn bè trong cơ sở dữ liệu.
$sql = mysql_query("SELECT COUNT(*) AS total FROM friends WHERE member_id='". $_SESSION['userid'] ."'");
$get_count = mysql_fetch_array($sql); // Fetch the results
$numfriends = $get_count['total']; // We've gotten the total number
Bây giờ chúng ta sẽ lấy 6 bản ghi ngẫu nhiên trong tổng số ở trên (hy vọng là> 6),
$query = mysql_query("SELECT * FROM friends WHERE member_id='". $_SESSION['userid'] ."' LIMIT 6 OFFSET " . (rand(0, $numFriends));
while ($rows = mysql_fetch_array($query))
{
/// show your $rows here
}
Sử dụng OFFSET có thể không phải là tốt nhất hoặc hiệu quả nhất, nhưng nó phù hợp với tôi trên các cơ sở dữ liệu lớn mà không làm chúng khó chịu.