[pgsql-jp: 33687] Re: [Q]配列内の文字列検索について
Mashiki
mashiki @ yanah.com
2004年 7月 15日 (木) 20:03:32 JST
Mashikiです。
>と言うことだそうですので
>select * from t3 where '新秋田叢書' ~ any(data);
>は{新秋田叢書}にマッチしても{秋田}にマッチするとは思えないんで?なんです。
この順序ですとany(data)のほうがパターンになりますので、
この結果のとおりですね。any(xxx)をlikeや「~」演算子の左辺
に持っていければいいのでしょうが、syntaxエラーになって
しまいますね。
少々強引かもしれませんが、dataの配列の内容にブランクが
ないと仮定して、
select * from t3
where any(data) like '%秋田叢書';
の代用記法として
select * from t3
where array_to_string(data,' ')||' ' ~ '秋田叢書 ';
もしくは
select * from t3
where array_to_string(data,' ')||' ' like '%秋田叢書 %';
title_code | tag | data
------------+------+--------------
5010000036 | 251A | {新秋田叢書}
5010000036 | 551B | {新秋田叢書}
5010000037 | 251A | {新秋田叢書}
5010000037 | 551B | {新秋田叢書}
5010000038 | 251A | {新秋田叢書}
5010000038 | 551B | {新秋田叢書}
5010000039 | 251A | {新秋田叢書}
5010000039 | 551B | {新秋田叢書}
5010000040 | 251A | {新秋田叢書}
5010000040 | 551B | {新秋田叢書}
(10 rows)
なんてどうでしょ。
pgsql-jp メーリングリストの案内