Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP MySQL wählt zufällige Zeilen aus

Der beste Weg, den ich gefunden habe, um eine beliebige Anzahl zufälliger Datensätze auszuwählen, ist mit OFFSET in der Abfrage.

Angenommen, Sie möchten 6 zufällige Datensätze, also leihe ich mir eine Antwort oben und zähle die Gesamtzahl der Freunde in der Datenbank.

$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

Jetzt erhalten wir die 6 zufälligen Datensätze aus der obigen Gesamtzahl (hoffentlich sind es> 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
}

Die Verwendung von OFFSET ist vielleicht nicht die beste oder effizienteste, aber es hat für mich bei großen Datenbanken funktioniert, ohne sie zu verzetteln.