sql >> データベース >  >> Database Tools >> SSMS

カンマ区切りの値フィールドからデータ行を選択する方法

    おそらくこれは1:nであるため、データベースに格納するためにコンマ区切りの値を使用することは、それらを格納するために個別のテーブルを作成することを試みるのは決して良いことではありません。 関係。

    これが不可能な場合は、次の方法でこれを行うことができます。一致する値の数が同じままである場合は、一連のLikeを実行することをお勧めします。 OR/ANDとともにステートメント 要件に応じて。

    例-

    WHERE
        Media LIKE '%21%'
        OR Media LIKE '%30%'
        OR Media LIKE '%40%' 
    

    ただし、上記のクエリは、21を含むすべての値をキャッチする可能性があります したがって、1210のような値の列であっても 、210 また返されます。これを克服するには、whereの関数を使用するため、パフォーマンスを妨げる次のトリックを実行できます。 条項とそれは seargable クエリ。しかし、ここにあります、

    --Declare valueSearch variable first to value to match for you can do this for multiple values using multiple variables.
    
    Declare @valueSearch = '21'
    
    -- Then do the matching in where clause
    WHERE 
        (',' + RTRIM(Media) + ',') LIKE '%,' + @valueSearch + ',%'
    

    一致する値の数が変更される場合は、フルテキストインデックス Fulltext Indexの後でこれを使用することにした場合は、同じことを考える必要があります。 以下のようにして、必要なものを入手できます。

    例-

    WHERE 
         CONTAINS(Media, '"21" OR "30" OR "40"')
    


    1. phpmyadminで制限時間を変更する方法(ログイン)

    2. MySQLは以下でのみ機能します:skip-grant-tables

    3. SSMSの拡張性/アドイン-現在のデータベースとサーバーを取得します

    4. XAMPP MySQLパスワード設定(PHPMYADMINには入力できません)