[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 メーリングリストの案内