Heim > Datenbank > MySQL-Tutorial > Wie kann ich nach der Bestellung effizient die Zeilenposition in MySQL finden?

Wie kann ich nach der Bestellung effizient die Zeilenposition in MySQL finden?

Mary-Kate Olsen
Freigeben: 2025-01-18 02:27:09
Original
460 Leute haben es durchsucht

How Can I Efficiently Find the Row Position in MySQL After Ordering?

Zeilenpositionen nach der MySQL-Sortierung effizient ermitteln

In einer MySQL-Tabelle erfordert die Bestimmung der Position einer bestimmten Zeile nach der Sortierung basierend auf einer bestimmten Spalte (z. B. „Name“) einen optimierten Ansatz, um das Laden einer großen Ergebnismenge zu vermeiden.

Bedenken Sie die folgende Abfrage:

<code class="language-sql">SELECT x.id,
       x.position,
       x.name
  FROM (SELECT t.id,
               t.name,
               @rownum := @rownum + 1 AS position
          FROM TABLE t
          JOIN (SELECT @rownum := 0) r
      ORDER BY t.name) x
 WHERE x.name = 'Beta'</code>
Nach dem Login kopieren

Diese Abfrage verwendet eine Unterabfrage, um Zeilenpositionen basierend auf der ORDER BY-Klausel zuzuweisen und filtert dann die erforderliche Zeile „Beta“. Die Position wird mithilfe der Benutzervariablen @rownum berechnet, die für jede Zeile automatisch erhöht wird.

Alternativ können Sie die folgende Abfrage verwenden, um den Gleichstand anders zu behandeln:

<code class="language-sql">SELECT t.id,
       (SELECT COUNT(*)
          FROM TABLE x
         WHERE x.name < t.name) + 1 AS position
  FROM TABLE t
 WHERE t.name = 'Beta'</code>
Nach dem Login kopieren

Diese Methode gibt für parallele Zeilen dieselbe Position zurück und liefert möglicherweise eine andere Ergebnismenge als die erste Abfrage.

Das obige ist der detaillierte Inhalt vonWie kann ich nach der Bestellung effizient die Zeilenposition in MySQL finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage