Top-Zeilen pro Kategorie in MySQL auswählen
Um eine begrenzte Anzahl von Zeilen aus jeder Kategorie in einer Tabelle abzurufen, können Sie Analysefunktionen nutzen . Allerdings bietet MySQL diese Funktionen nicht direkt an. Dennoch ist es möglich, sie mithilfe von Variablen zu emulieren.
Analysefunktionen emulieren
Die folgende MySQL-Abfrage emuliert die Funktionalität von Analysefunktionen, um die obersten drei Zeilen für jede Kategorie auszuwählen :
<code class="mysql">SELECT x.* FROM ( SELECT t.*, CASE WHEN @category != t.category THEN @rownum := 1 ELSE @rownum := @rownum + 1 END AS rank, @category := t.category AS var_category FROM TBL_ARTIKUJT t JOIN (SELECT @rownum := NULL, @category := '') r ORDER BY t.category ) x WHERE x.rank <= 3</code>
Erklärung
Mit dieser Methode können Sie die gewünschte Funktionalität implementieren, ohne auf Analysefunktionen angewiesen zu sein, die von MySQL nicht unterstützt werden.
Das obige ist der detaillierte Inhalt vonWie wählt man in MySQL ohne Analysefunktionen effizient die obersten Zeilen pro Kategorie aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!