[pgsql-jp: 33679] [Q]配列内の文字列検索について

Yoshio Funaki yoshio @ apl.pref.akita.jp
2004年 7月 15日 (木) 14:31:41 JST


お世話になっております。船木@秋田県立図書館です。

PostgreSQL 7.4.3 on i386-unknown-freebsd5.2.1, compiled by GCC gcc (GCC) 3.3.3 [FreeBSD] 20031106
(1 row)
な環境で、配列についてのテストを行っておりますが、どうしても分からないことがありまして
ご教示頂きたいのです。

  Column   |  Type  | Modifiers
------------+--------+-----------
 title_code | text   |
 tag        | text   |
 data       | text[] |
なt3に
test=# select * from t3 where '新秋田叢書' =  any(data);
    title_code    | tag  |     data
------------------+------+--------------
 5010000036       | 251A | {新秋田叢書}
 5010000036       | 551B | {新秋田叢書}
 5010000037       | 251A | {新秋田叢書}
 5010000037       | 551B | {新秋田叢書}
 5010000038       | 251A | {新秋田叢書}
 5010000038       | 551B | {新秋田叢書}
 5010000039       | 251A | {新秋田叢書}
 5010000039       | 551B | {新秋田叢書}
 5010000040       | 251A | {新秋田叢書}
 5010000040       | 551B | {新秋田叢書}
 
みたいな感じでデータが入っております。
このテーブルに対して
test=# select * from t3 where '%秋田叢書' =  any(data);
の検索をしてみると
 title_code | tag | data
------------+-----+------
(0 rows)
と言われました。ついでに
test=# select * from t3 where '新秋田%' =  any(data);
もやってみたのですが
 title_code | tag | data
------------+-----+------
(0 rows)
と言われてしまいました。多分ダメだろうと思いつつ
test=# select * from t3 where '%秋田%' =  any(data);
もやってみましたが、案の定
 title_code | tag | data
------------+-----+------
(0 rows)
と言われてしまいました。
いわゆる
select hoge from fuga where data like '%....';
とか
select hoge from fuga where data like '%....%';
を、配列全体に関して行う方法ってあるんでしょうか?

----
Yoshio Funaki  yoshio @ apl.pref.akita.jp



pgsql-jp メーリングリストの案内