PostgreSQL 2テーブル目 (680レス)
上下前次1-新
抽出解除 レス栞
121(9): nobodyさん [] 03/04/24 19:29 ID:Q1w3nY2w(1) AAS
質問です。
複数のカラムを対象に、selectしたいのですが、どう書けばよろしいでしょうか?
mysqlだとFull Text Searchとあると思うのですが、Postgresでできますでしょうか?
124: nobodyさん [sage] 03/04/27 05:21 ID:??? AAS
>>121
意味わかんね。
select * from table
ってやれば複数のカラム対象にselectできてるし。
125: nobodyさん [sage] 03/04/27 12:54 ID:??? AAS
>>121
Full Text Searchって全文検索?
NamazとかKakasiでも使うかしかないんでないの?
全文検索な時点でDBが面倒見ないといけない機能でもないような気がする。
単純に複数カラムにを検索条件に掛けたいなら地道にSQL書きなはれ。
SELECT A.id
FROM A,B
WHERE A.id = B.id
AND A.firstname = "あああ"
AND B.adress = "あああ"
みたいな。
こんなSQL使う時点で、設計ミスか余計な機能な気もするけど。
127(1): nobodyさん [] 03/04/27 21:51 ID:ClMbC1OP(1) AAS
>>121
第一正規化、って知っていますか?
128(2): 121 [] 03/04/27 21:52 ID:u/4ug4s4(1/2) AAS
>> 124
失礼しました。whereで複数カラムを指定するという意味です。
>> 125
全文検索というと、確かにNamazuとかそういう方向いっちゃいますね。
単純に複数カラムを検索条件にかけたいだけです。
where andでつなぐと遅くなるので、(レコード数が230万件あるので)
mysqlのFull Text Searchつかったらと先方にいわれ、いまさら乗り換える
のはややこしいので、Postgresでもそういう機能がないかと探しておりま
した。
設計ミスか余計な機能ではとありますが、検索対象の列が5つあって、
最初はそれぞれにかければいいという仕様でしたが、5つのどれかに
ヒットするようにしなさいと仕様が変更されたのです。
他に方法あるでしょうか? って自分で考えろという感じですが、
いろいろと調べてはいるのですが、思いつきません。。
130(1): 121 [] 03/04/27 22:41 ID:u/4ug4s4(2/2) AAS
> 129
すいません、where andではなく、where or で、遅くなるという意味です。
137: 121 [] 03/04/28 13:42 ID:carn+S7w(1) AAS
>> 134,135
ご指摘の通り、like '%語句%'とやっております。
実は今からでもテーブルの設計は変更可能なのですが、
どのように変更したらよろしいでしょうか。
今はID,NAME,AA,BB,CC,DD,EEというカラム構成で、
AA,BB,CC,DD,EEの中で、どれかに検索キーワードがあればヒットする
というようにしたいです。
>> 136
こちらありがとうございます。
coalesceってこういう時に使うのですね。習ってはいたのですが、
いつ使うんだろと思っていました。勉強になります。
138: nobodyさん [sage] 03/04/28 15:37 ID:??? AAS
>>121
>>127
140(1): 121 [] 03/04/29 18:01 ID:JKdqeuMi(1) AAS
>> 127
正規化については、こちらを読みました。
http://www.rfs.jp/sitebuilder/sql/01/06.html
今回のケースとは特に関係ないかと思うのですが、私の洞察力不足でしょうか。
>> 139
ありがとうございます。
そこまでやると複雑になるので、おとなしくMySQLに移行するかと思って
しまいます。。
145(1): 121 [] 03/04/30 22:31 ID:0656yZRu(1) AAS
>> 143
NAME,AA,BB,CC・・・は、担当者、商品名A、商品名B、商品名C・・・という
構造です。特にカラムが一緒ではないので、正規化は関係ないかと思うのですが、、、
ちがいます?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s