dポイントプレゼントキャンペーン実施中!

こんにちは。
いつもお世話になっております。

SQLにて、配列のフィールドに指定した値が含まれているものを抽出する方法を質問致します。


SQLのテーブル(テーブル名:data)に配列のフィールド(フィールド名:array[])があるとします。
Array[]フィールドの中に、1, 2, 6のいずれかが含まれている場合表示対象となるSQL文を書くには、どのように書けばよいですか。PostgreでSQL文を書くとします。


実現したい動作は以下の通りです。
array[] の値
{1,3,5} 表示対象になる
{3,8,9,10}  表示対象にならない
{2,6} 表示対象になる

以上よろしくお願い致します。


ちなみに、array[]フィールドの中に、2(指定した数値が1つだけ)を探すとき、
select * from data where 2=any (array);
とすればいいことは確認できました。

A 回答 (1件)

&& 演算子 (重複する, 共通要素を持つ) を使います。



SELECT * FROM (VALUES
(ARRAY[1,3,5]),
(ARRAY[3,8,9,10]),
(ARRAY[2,6])
) T(arr)
WHERE ARRAY[1,2,6] && arr;

参考URL:http://www.postgresql.jp/document/current/html/f …
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
&&演算子は知りませんでしたので、勉強になりました。

お礼日時:2011/12/10 14:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す