Mysql
 sql >> Database >  >> RDS >> Mysql

PHP MySQL seleziona righe casuali

Il modo migliore che ho trovato per selezionare un numero qualsiasi di record casuali è con OFFSET nella query.

Supponiamo che tu voglia 6 record casuali, quindi prenderò in prestito una risposta sopra e conterò il numero totale di amici nel database.

$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

Ora otterremo i 6 record casuali dal totale sopra (speriamo che siano> 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
}

L'uso di OFFSET potrebbe non essere il migliore o il più efficiente, ma per me ha funzionato su database di grandi dimensioni senza impantanarli.