sql >> データベース >  >> RDS >> Mysql

カンマ区切りのフィールドを使用したMySQLのグループ化

    スキルの可能なすべての値を含む行セットが必要です。

    MySQL それを行う方法がないため、何らかの方法で生成する必要があります。

    そのような結果セットがある場合は、次を発行してください:

    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
    

    別のテーブルにスキルがあるとおっしゃっていたので、そのテーブルを使用してください:

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

    ただし、これはタイプミスと一致することはなく、スキップされるだけです。




    1. 高度な(?)AND/ORクエリ

    2. MySQLサーバーは--secure-file-privオプションで実行されているため、Macでこのステートメントを実行できません。

    3. JavaのBigDecimal/MySQLのHibernateをどのタイプにマッピングしますか?

    4. MySQLの特定の半径内のクエリポイント