Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP MySQL wybierz losowe wiersze

Najlepszym sposobem, jaki znalazłem, aby wybrać dowolną liczbę losowych rekordów, jest użycie PRZESUNIĘCIA w zapytaniu.

Powiedzmy, że chcesz 6 losowych rekordów, więc pożyczę z powyższej odpowiedzi i policzę całkowitą liczbę znajomych w bazie danych.

$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

Teraz otrzymamy 6 losowych rekordów z powyższej sumy (miejmy nadzieję, że jest to> 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
}

Używanie OFFSETu może nie jest najlepsze ani najbardziej wydajne, ale dla mnie działało na dużych bazach danych bez ich ugrzęźnięcia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mogę uruchomić pętlę w MySQL bez użycia procedury/funkcji?

  2. formatowanie pola daty w mysql

  3. Null reference z modułu sterownika MySQL z taskpane.js i dodatku Microsoft Office

  4. Zapytanie Mysql, aby znaleźć identyfikator, w którym spełnia wiele warunków dla jednej kolumny

  5. ImportError:brak modułu o nazwie flask.ext.mysql