Ben büyük veritabanları RAND () ORDER BY ile SQL sorguları çalıştırmak için iyi bir fikir olmadığını okudum.
Yani burada kodu kırma benim atış. Kod rastgele satır kapmak için ikinci bir seçme yapmak, sonra veritabanından 10 rasgele kimlikleri seçmek gerekiyor.
$sql = "SELECT id FROM table WHERE image != ''
ORDER BY id DESC LIMIT 50;";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
foreach($row as $key => $value)
{
$array[] = $value;
}
}
$rand_keys = array_rand($array, 10);
foreach($rand_keys as $value)
{
$rand_arr[] = $array[$value];
}
$rand_list = implode("," , $rand_arr);
$sql = "SELECT image FROM table
WHERE image != ''
AND id IN ($rand_list)";
$result = mysql_query($sql);
Herhangi bir öneri hızlandırmak veya kolaylaştırmak için?