Vorwort In der Praxis kann es zu folgendem Problem kommen: Wir kennen die ID eines bestimmten Datensatzes und müssen dann feststellen, auf welcher Seite sich dieser Datensatz befindet, wenn er nach ID sortiert und paginiert ist. Der heutige Artikel gibt Ihnen eine Vorstellung. Schauen wir uns die Implementierungsmethode im Detail an. Abfrage der Paging-Position per ID Um beispielsweise die Paging-Position basierend auf der ID abzufragen, wenn die IDs in umgekehrter Reihenfolge sortiert sind, kann das folgende SQL verwendet werden, um die Anzahl der Datensätze abzufragen, die größer als diese ID sind: Wählen Sie Anzahl(ID) vom Benutzer aus, wobei ID > 5 ist; Im Beispiel ist „Benutzer“ der Tabellenname und die 5-stellige ID, die abgeglichen werden soll. Da in umgekehrter Reihenfolge sortiert wird, müssen Sie offensichtlich nur die Anzahl der Datensätze finden, die größer als diese ID sind. Wenn in aufsteigender Reihenfolge sortiert wird, müssen Sie nur die Anzahl der Datensätze finden, die kleiner als diese ID sind. Wie berechnet man, nachdem man den Zählwert ermittelt hat, auf welcher Seite sich der aktuelle Datensatz befindet? Hier ist ein Java-Codebeispiel: int Seitengröße = 10; // Nehmen wir an, dass das oben gefundene Ergebnis count ist und der Wert 11 ist. int-Anzahl = 11; // Berechnen Sie die Seitennummer des aktuellen Datensatzes // Holen Sie sich die aktuelle Seitenzahl als Seite 2, indem Sie den Modul nehmen und 1 addieren: int pageNum = count/pageSize + 1; // Wenn Sie eine bestimmte Position auf einer bestimmten Seite zusätzlich erhalten möchten, können Sie den Rest nehmen, also den ersten Datensatz auf der zweiten Seite (beginnend bei 0). int index = Anzahl%Seitengröße; Mehrdimensionale Sortierung und Positionierung Die obige Sortierung nach einfacher ID ist relativ einfach zu lösen. Was ist, wenn die Sortierdimension eines Datensatzes nicht nur die ID ist? Sortieren Sie beispielsweise zuerst in umgekehrter Reihenfolge nach Alter. Wenn das Alter gleich ist, sortieren Sie anschließend nach ID und in umgekehrter Reihenfolge. Die grundlegenden SQL-Anweisungen lauten wie folgt: Wählen Sie ID und Alter aus der Benutzersortierung nach Alter absteigend, ID absteigend; An diesem Punkt wissen wir, dass es einen Datensatz mit der ID 5 und dem Alter 18 gibt. Wie bestimmen wir die Position dieses Datensatzes in der Sortierung mit mehreren Bedingungen? Erstens liegt die Schwierigkeit der Sortierung mit mehreren Bedingungen darin, dass die Altersangaben gleich sind. Wenn die Altersangaben unterschiedlich sind, kann das folgende SQL verwendet werden, um die Position der ID zu ermitteln, genau wie bei „Abfragen der Paging-Position basierend auf der ID“: Wählen Sie die Anzahl(ID) des Benutzers aus, dessen Alter > 18 ist. Auf diese Weise können Sie die Position dieses Datensatzes abfragen, wenn das kombinierte Sortieralter unterschiedlich ist. Der Algorithmus für die spezifische Position ist derselbe wie im ersten Fall. Wie also mit der Situation umgehen, wenn sich das Alter wiederholt? Dies kann natürlich durch komplexe Assoziationsabfragen oder Untertabellenabfragen erreicht werden. Hier ist eine andere Möglichkeit, nämlich die Anzahl der Datensätze mit demselben Alter und einer ID abzufragen, die größer als die des aktuellen Benutzers ist: Wählen Sie die Anzahl(ID) des Benutzers aus, wobei Alter = 18 und ID > 5 ist. Das Obige erhält die Datensätze mit demselben Alter und einer ID größer als 5. Addieren Sie die statistischen Ergebnisse des ersten und zweiten Schritts. Die Frage ist, ob wir zum einfachen Modus „Abfrage der Paging-Position basierend auf der ID“ zurückgekehrt sind oder ob derselbe Algorithmus berechnen kann, auf welcher Seite sich der aktuelle Datensatz befindet. Obwohl diese Lösung die Datenbank zweimal abfragt, ist sie bei gut etabliertem Index bequemer, prägnanter und effizienter als zugehörige Abfragen oder Unterabfragen. Zusammenfassung Das Obige sind zwei Denkdimensionen bei der praktischen Begegnung mit ähnlichen Problemen. Ich hoffe, dass sie Ihnen einen Durchbruch bringen können, und ich hoffe auch, dass Sie bessere Lösungen anbieten können. Nun, das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
>>: So verwenden Sie die ElementUI-Paginierungskomponente Paginierung in Vue
Inhaltsverzeichnis 1. Was ist eine JavaScript-Eng...
Inhaltsverzeichnis Master-Slave-Replikationsmecha...
Inhaltsverzeichnis Überblick Beispiel Warum wird ...
Inhaltsverzeichnis 1. Vorlage 2. Generika 3. Gene...
Inhaltsverzeichnis 1. Sicherung 1.1 Vollständig v...
1. Die Ränder von Geschwisterelementen zusammenfü...
Ich bin erst vor kurzem mit countly in Kontakt ge...
Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...
Während der Entwicklung wurden die folgenden Situ...
Hilfsfunktion mapGetters mapGetters ordnet die Ge...
1. Fehlerreproduktion Ich kann auf die MySQL-Date...
Zunächst muss Ihr Container laufen Sie können die...
Inhaltsverzeichnis Beschreibung der Installations...
Wir hoffen, dass wir durch die Einbindung der Wet...
So erstellen Sie eine virtuelle Linux-Maschine in...