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

PHP MySQL sélectionner des lignes aléatoires

La meilleure façon que j'ai trouvée pour sélectionner n'importe quel nombre d'enregistrements aléatoires est d'utiliser OFFSET dans la requête.

Disons que vous voulez 6 enregistrements aléatoires, donc je vais emprunter à une réponse ci-dessus et compter le nombre total d'amis dans la base de données.

$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

Maintenant, nous allons obtenir les 6 enregistrements aléatoires sur le total ci-dessus (espérons que c'est> 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
}

Utiliser OFFSET n'est peut-être pas le meilleur ni le plus efficace, mais cela a fonctionné pour moi sur de grandes bases de données sans les enliser.