sql >> Database >  >> RDS >> Mysql

MySQL-groepering met een door komma's gescheiden veld

Je moet een rijenset hebben die alle mogelijke waarden van je vaardigheden bevat.

MySQL mist een manier om het te doen, dus je zult het op de een of andere manier moeten genereren.

Als je zo'n resultatenset hebt, geef dan gewoon het volgende uit:

SELECT  skill, COUNT(*)
FROM    (
        SELECT 'Install' AS skill
        UNION ALL
        SELECT 'Configure' AS skill
        UNION ALL
        SELECT 'Setup' AS skill
        UNION ALL
        SELECT 'Blah' AS skill
        ) s
JOIN    users u
ON      find_in_set(s.skill, u.sets)
GROUP BY
        s.skill

Aangezien je zei dat je vaardigheden in een aparte tabel staan, gebruik die tabel dan:

SELECT  skill, COUNT(*)
FROM    skills s
JOIN    users u
ON      find_in_set(s.skill, u.sets)
GROUP BY
        s.skill

Dit komt echter nooit overeen met de typefouten, ze worden gewoon overgeslagen.




  1. Zoek in meerdere tabellen naar dezelfde waarde en krijg de tabel waar het resultaat vandaan komt

  2. Rangschikking op basis van twee kolommen

  3. mysql:alle open verbindingen naar een bepaalde database zien?

  4. Gebruikerswachtwoord wijzigen in PHP en mySQL