Mysql
 sql >> Base de données >  >> RDS >> Mysql

Alternative à ORDER BY RAND() sur les tables jointes ?

Burçin Yazıcı - J'utilise MySQL pour que les horodatages ne produisent pas de mili/micro secondes. J'ai essayé d'utiliser le microtime() de PHP et de l'insérer dans la requête, mais cela aboutit toujours à 'utiliser temporaire; en utilisant filesort' lors de l'explication.

Pour le moment, je laisse la requête non triée, je renvoie tous les résultats, puis j'utilise PHP

mysql_data_seek($result, rand(0, mysql_num_rows($result)-1));
$row=mysql_fetch_object($result);

pour choisir une ligne au hasard. Je suis prudent quant à l'impact sur les performances de mysql_data_seek mais cela soulage la base de données pour le moment.