Heim  >  Artikel  >  Datenbank  >  So lösen Sie die Gefahr der MySQL-Reihenfolge nach Limit

So lösen Sie die Gefahr der MySQL-Reihenfolge nach Limit

WBOY
WBOYnach vorne
2023-05-27 11:03:221560Durchsuche

Bei der Durchführung von Paging-Abfragen aufgetretene Fallstricke:

Problem entdeckt: Nach dem Sortieren eines einzelnen nicht indizierten Feldes wurde ein Grenzwert gefunden. Es wurde festgestellt, dass der genommene Wert nicht der Wert nach der normalen Sortierung ist, wenn die sortierten Felder den gleichen Wert haben und innerhalb des Grenzwertbereichs liegen Das heißt, wenn die in Zeile N eingestuften Daten Schlüssel1 oder Schlüssel2 sein können, kann das Sortierergebnis Schlüssel1 oder Schlüssel2 sein.

mysql order by limit的坑怎么解决 Sortieren + Ergebnisse begrenzen (Sortierschlüssel ohne Index)

Drücken Sie cnt, um das Schlüsselwort abzurufen und die drei besten Ergebnisse zu erhalten:


mysql order by limit的坑怎么解决 Originaltext:

Wenn mehrere Zeilen identische Werte in den ORDER BY-Spalten haben, kann der Server diese Zeilen in beliebiger Reihenfolge zurückgeben und dies je nach Gesamtausführungsplan unterschiedlich tun. Mit anderen Worten, die Sortierreihenfolge dieser Zeilen ist nicht deterministisch in Bezug auf die nicht geordneten Spalten.

Das bedeutet, dass MySQL diese Zeilen zufällig auswählt, wenn die Spalten von order by den gleichen Wert haben, was je nach Ausführungsplan variieren wird.


Lösung: Die Spalte „Ordnung nach“ enthält eine Indexspalte

Fügen Sie hier die Primärschlüssel-ID als Sortierspalte hinzu

Das obige ist der detaillierte Inhalt vonSo lösen Sie die Gefahr der MySQL-Reihenfolge nach Limit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen