„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann die zufällige Reihenfolge in der MySQL-Paginierung ohne Duplikate oder feste Ergebnisse auf der ersten Seite beibehalten werden?

Wie kann die zufällige Reihenfolge in der MySQL-Paginierung ohne Duplikate oder feste Ergebnisse auf der ersten Seite beibehalten werden?

Veröffentlicht am 07.11.2024
Durchsuche:633

How to Maintain Random Ordering in MySQL Pagination without Duplicates or Fixed First Page Results?

PHP-MySQL-Paginierung mit zufälliger Reihenfolge

Die Beibehaltung der zufälligen Reihenfolge in der MySQL-Paginierung kann eine Herausforderung darstellen, wenn es darum geht, doppelte Ergebnisse zu verhindern und unterschiedliche Sätze sicherzustellen die erste Seite. Hier finden Sie Lösungen für diese Probleme:

1. Doppelte Ergebnisse verhindern

Um zuvor angezeigte Ergebnisse auf nachfolgenden Seiten auszuschließen, erweitern Sie Ihre SQL-Abfrage um ein Ausschlusskriterium, das auf zuvor abgerufenen Zeilen basiert. Verwenden Sie ein PHP-Array, um abgerufene Inhalte zu speichern, und integrieren Sie Bedingungen in die Abfrage für den Ausschluss:

$excludeIDs = []; // Array to store excluded IDs

$query = "SELECT * FROM table ";
if(!empty($excludeIDs)) {
    $query .= "WHERE id NOT IN (" . implode(",", $excludeIDs) . ") ";
}
$query .= "ORDER BY RAND() LIMIT 0,10;";

2. Unterschiedliche Ergebnisse auf der ersten Seite

Ja, die Paginierung kann mit zufälliger Reihenfolge verwendet werden, indem ein Startwert in die RAND()-Funktion eingeführt wird. Durch Variieren des Startwerts (z. B. basierend auf der Zeit oder der IP-Adresse des Benutzers) können Sie jedes Mal unterschiedliche Ergebnismengen erhalten.

3. Mit RAND(SEED)

Geben Sie mit RAND(SEED) einen Startwert an, um die zufällige Reihenfolge zu beeinflussen. Durch Festlegen einer konstanten Ganzzahl als Startwert können Sie die Ergebnissequenz steuern:

$seed = 521; // Example seed value

$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729727088 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3