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

PHP MySQL vælg tilfældige rækker

Den bedste måde, jeg har fundet til at vælge et hvilket som helst antal tilfældige poster på, er med OFFSET i forespørgslen.

Lad os sige, at du vil have 6 tilfældige poster, så jeg låner fra et svar ovenfor og tæller det samlede antal venner 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 tilfældige poster ud af det samlede antal ovenfor (forhåbentlig er 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
}

Brugen af ​​OFFSET er måske ikke den bedste eller mest effektive, men det har virket for mig på store databaser uden at spolere dem.



  1. Forespørgselsoptimering i PostgreSQL. FORKLAR Grundlæggende – Del 2

  2. MySQL FULLTEXT indekser problem

  3. Er der en indlejringsgrænse for korrelerede underforespørgsler i nogle versioner af Oracle?

  4. visning af alle poster fra én tabel og matchende poster fra en anden