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

カンマ区切りの値を持つ文字列を含む列値に対して検索クエリを実行するにはどうすればよいですか?

    あなたはこのようなことをすることができます。

    select name from zone_table where 
    string_to_array(replace(tags,' ',''),',')@>
    string_to_array(replace('down, 110.22.100.3',' ',''),',');
    

    1)replace

    を使用して、前にスペースを入れずにstring_to_arrayを適切に分離するために、既存の文字列のスペースを削除します。

    2)string_to_array 文字列をカンマで区切られた配列に変換します。

    3)@>contains オペレーター

    (または)

    全体として一致させたい場合

    select name from zone_table where POSITION('down, 110.22.100.3' in tags)!=0
    

    個別の試合については、次のことができます

    select name from zone_table where POSITION('down' in tags)!=0 and 
    POSITION('110.22.100.3' in tags)!=0
    

    位置の詳細こちら



    1. MySQLで2つのタイムスタンプの差を計算する方法

    2. ActiveRecord:すべての子が条件に一致する親を見つける方法は?

    3. MySQLのインデックス作成とファイルソートの使用

    4. OracleApplicationsR12の添付ファイル