Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Anzahl der in einer GROUP_CONCAT-Abfrage angezeigten Fähigkeiten auf die ersten drei beschränken?

Wie kann ich die Anzahl der in einer GROUP_CONCAT-Abfrage angezeigten Fähigkeiten auf die ersten drei beschränken?

DDD
DDDOriginal
2024-11-26 14:38:10466Durchsuche

How Can I Limit the Number of Skills Shown in a GROUP_CONCAT Query to the Top Three?

GROUP_CONCAT mit Fähigkeitslimit

In einer Datenbank mit Spielern und ihren Fähigkeiten in einer Viele-zu-Viele-Beziehung ist eine Abfrage erforderlich Listen Sie die Spieler und ihre drei besten Fähigkeiten auf. Die erste Abfrage versucht, GROUP_CONCAT zum Verketten von Fertigkeitstiteln zu verwenden, aber es fehlt eine Möglichkeit, die Anzahl der Fertigkeiten auf drei zu begrenzen.

Lösung:

GRUPPE_CONCAT hingegen nicht Um ein Limit direkt zu unterstützen, kann eine Problemumgehung durch Nachbearbeitung der verketteten Zeichenfolge verwendet werden:

substring_index(group_concat(s.title SEPARATOR ','), ',', 3) as skills

This Der Befehl extrahiert die ersten drei durch Kommas getrennten Fertigkeitstitel aus der verketteten Zeichenfolge. Es wird davon ausgegangen, dass Fertigkeitsnamen keine Kommas enthalten und dass die Anzahl der Fertigkeiten relativ gering ist.

Hinweis:

Um korrekte Ergebnisse sicherzustellen, sollte die Tabelle „player_skills“ eine haben Primärschlüssel bestehend aus dem Tupel (Spieler-ID, Fertigkeits-ID), der verhindert, dass die gleiche Fertigkeit einem Spieler mehrmals zugewiesen wird.

Das obige ist der detaillierte Inhalt vonWie kann ich die Anzahl der in einer GROUP_CONCAT-Abfrage angezeigten Fähigkeiten auf die ersten drei beschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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