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

Wataru Oguro oguro @ zenrin-datacom.net
2004年 7月 15日 (木) 14:50:05 JST


oguroです。

contrib/arrayの下あたりに答えに近いものが見つかるかも知れません。
試してみてはいかがでしょうか。(私も使ったことはありませんので。。。。

Yoshio Funaki wrote:

>お世話になっております。船木@秋田県立図書館です。
>
>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 メーリングリストの案内