sql >> Database teknologi >  >> RDS >> Mysql

MySQL-gruppering med et kommasepareret felt

Du skal have et rækkesæt, der indeholder alle mulige værdier af dine færdigheder.

MySQL mangler en måde at gøre det på, så du bliver nødt til at generere det på en eller anden måde.

Hvis du har et sådant resultatsæt, skal du bare udsende:

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

Da du nævnte, at du har dine færdigheder i en separat tabel, så brug denne tabel:

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

Dette vil dog aldrig matche tastefejlene, de vil bare blive sprunget over.




  1. Streng til tidsstempel i MySQL

  2. Hvordan NU() virker i MariaDB

  3. 2 måder at tilføje et procenttegn til et tal i SQLite

  4. Indstil standardværdi, hvis tom streng sendes