sql >> Database >  >> RDS >> Mysql

GROUP_CONCAT met limiet

Een ietwat omslachtige manier om dit te doen, is door het resultaat van GROUP_CONCAT na te bewerken :

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

Dit veronderstelt natuurlijk dat je vaardigheidsnamen geen komma's bevatten en dat het aantal redelijk klein is.

viool

Een functieverzoek voor GROUP_CONCAT ter ondersteuning van een expliciete LIMIT clausule is helaas nog steeds niet opgelost.

UPDATE :Als gebruiker Aardbei wijst erop dat de tabel player_skills zou de tuple (player_id, skill_id) . moeten hebben als de primaire sleutel, anders staat het schema toe dat dezelfde vaardigheid meerdere keren aan een speler wordt toegewezen, in welk geval group_concat zou niet werken zoals verwacht.



  1. Hoe een externe MySQL-verbinding in te stellen

  2. Hoe kan ik in SQL Server overal een kolom vinden waarnaar wordt verwezen?

  3. Alleen de datum retourneren van een SQL Server DateTime-gegevenstype

  4. 3 manieren om ALL in SQL Server te gebruiken