sql >> Databasteknik >  >> RDS >> Mysql

PHP MySQL välj slumpmässiga rader

Det bästa sättet jag har hittat för att välja hur många slumpmässiga poster som helst är med OFFSET i frågan.

Låt oss säga att du vill ha sex slumpmässiga poster, så jag lånar från ett svar ovan och räknar det totala antalet vänner i databasen.

$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

Nu får vi de 6 slumpmässiga posterna av det totala antalet ovan (förhoppningsvis är det> 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
}

Att använda OFFSET är kanske inte det bästa eller mest effektiva, men det har fungerat för mig på stora databaser utan att försvåra dem.



  1. Stäng av varningar och fel på PHP och MySQL

  2. Hur beställer man efter viss del av en sträng?

  3. Användarkontohantering, roller, behörigheter, autentisering PHP och MySQL - Del 2

  4. PostgreSQL - hur renderar man datum i olika tidszoner?