Heim >Datenbank >MySQL-Tutorial >Wie implementiert man Paginierung mit zufälliger Reihenfolge in PHP MySQL?

Wie implementiert man Paginierung mit zufälliger Reihenfolge in PHP MySQL?

Susan Sarandon
Susan SarandonOriginal
2024-10-24 07:57:02630Durchsuche

How to Implement Pagination with Random Ordering in PHP MySQL?

PHP-MySQL-Paginierung mit zufälliger Reihenfolge

Wie bereits erwähnt, hat eine Website ein Problem damit, Suchergebnisse auf ihrer Inhaltsseite mithilfe einer Paginierung zu ordnen System. Die verwendete SQL-Abfrage lautet wie folgt:

<code class="sql">SELECT * FROM table ORDER BY RAND() LIMIT 0,10;</code>

Dieses Problem tritt in drei Szenarien auf:

  1. Ausschluss zuvor gesehener Ergebnisse: Wenn ein Benutzer navigiert Um zur nächsten Seite zu gelangen, müssen zuvor angezeigte Ergebnisse von nachfolgenden Abfragen ausgeschlossen werden, während die zufällige Reihenfolge beibehalten wird.
  2. Neue Ergebnisse auf Seite 1: Der Benutzer stößt bei der Rückkehr zur ersten immer wieder auf eine zufällige Reihenfolge Seite. Dieses Verhalten wirft die Frage auf, ob die Paginierung in diesem Szenario effektiv genutzt werden kann.
  3. Praktische Implementierung von Seed: Erkundung von Möglichkeiten zur Implementierung der Seed-Funktion in MySQL, um die gewünschte zufällige Reihenfolge zu erreichen.

Lösung:

Die MySQL RAND(SEED)-Funktion behebt dieses Problem. In der Dokumentation heißt es: „Wenn ein konstantes ganzzahliges Argument N angegeben wird, wird es als Startwert verwendet.“ (http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand).

Die Anwendung auf die Beispielabfrage führt zu einem Szenario, in dem die Reihenfolge zufällig bleibt für einen bestimmten Seed konsistent sein:

<code class="sql">SELECT * FROM your_table ORDER BY RAND(351);</code>

Der Seed kann jedes Mal geändert werden, wenn der Benutzer auf die erste Ergebnisseite zugreift, und in seiner Sitzung gespeichert werden. Dadurch wird bei jedem Besuch der ersten Seite eine andere zufällige Reihenfolge gewährleistet, ohne dass die zufällige Reihenfolge der nachfolgenden Seiten beeinträchtigt wird.

Das obige ist der detaillierte Inhalt vonWie implementiert man Paginierung mit zufälliger Reihenfolge in PHP MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn