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

MySqlは、フィールドの値がコンマで区切られているテーブルから一意の単語のリストを取得します

    きれいではありませんが、SQLでこれを行うことができます。

    select distinct reverse(substring_index(reverse(substring_index(tags, ',', n.n)), ',', 1)) as word
    from t cross join
         (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n
    having word is not null
    

    サブクエリnを確認する必要があります 少なくとも各タグに単語数が含まれています。

    こちら これを示すSQLFiddleです。

    これは、元のデータを連番でクロス結合しています。次に、substring_index()を使用して、タグ文字列からn番目の値を選択します。 。

    タグの最大数を取得するには、次のようにします。

    select max(length(tags) - length(replace(tags, ',', 1))+1
    from t
    


    1. テーブル変更エラーを回避する方法

    2. 例を使用したOPENJSONの概要(SQL Server)

    3. Djangoは多くのテーブルへの1つの外部キーをモデル化します

    4. sqlalchemy.exc.NoSuchModuleError:プラグインを読み込めません:sqlalchemy.dialects:postgres