Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Grupowanie MySQL z polem oddzielonym przecinkami

Musisz mieć zestaw wierszy zawierający wszystkie możliwe wartości twoich umiejętności.

MySQL nie ma na to sposobu, więc będziesz musiał to jakoś wygenerować.

Jeśli masz taki zestaw wyników, po prostu wydaj:

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

Ponieważ wspomniałeś, że masz swoje umiejętności w osobnej tabeli, użyj tej tabeli:

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

To jednak nigdy nie pasuje do literówek, zostaną po prostu pominięte.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL nie używa indeksów (Korzystanie z sortowania plików) podczas korzystania z ORDER BY

  2. Nie rozumiem, dlaczego moja zmienna ma wartość NULL

  3. MySQL aktualizuje kolumnę Varchar z NULL

  4. dlaczego to zapytanie zwraca wiersz z wartościami null?

  5. SQL - wydajność w varchar vs. int