[pgsql-jp: 24947] 1テーブル内の複数の列に対しAND検索をかけるには?
space @ try-net.or.jp
space @ try-net.or.jp
2002年 2月 25日 (月) 19:45:53 JST
皆様はじめまして、Higataと申します。
よろしくお願いします。
FreeBSD上のPostgreSQL: 7.1.3をレンタルサーバー上で使用しています。
項目がcolA,colB,colC,colD,colE,colFとあるようなテーブルにおいて、
colB,colC,colD,colEのいずれかの列に、キーワードKey1とKey2を含む行を
抽出したいと思い、以下のようにしてみたのですが、データ内に
colB=Key1,colD=Key2のものがあっても見つけられません。
まずKey1を含むものとKey2を含むものとを抽出し、そのANDを取ることで
目的を達成できると思ったのですが、そもそも考え方がまずいのでしょうか?
それぞれのキーワードのみならばもちろん出てきます。
(select * from TABLE where colB like '%Key1%'
union select * from TABLE where colC like '%Key1%'
union select * from TABLE where colD like '%Key1%'
union select * from TABLE where colE like '%Key1%')
intersect
(select * from TABLE where colB like '%key2%'
union select * from TABLE where colC like '%key2%'
union select * from TABLE where colD like '%key2%'
union select * from TABLE where colE like '%key2%')
テーブル全体のように複数の列に対する全文検索のようなことが
したかったのですがマニュアルなどを探すにつれて、可能なのか
どうなのかさえ判らなくなってしまいました。
みなさんの知恵をお借りできたらと思います。
よろしくお願いします。
干潟
pgsql-jp メーリングリストの案内