人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQL(postgresql)のクエリーでたとえば
select * from tableX where columnA like '%word%' or columnB like '%word%';
というクエリーを改造して
"word"がcolumnAとcolumnBどっちのカラムにhitしたか判定する書き方はあるでしょうか

●質問者: dedara
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:postgreSQL SELECT SQL Word カラム
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● HALSPECIAL
●40ポイント

未検証ですが、こんなのでどうでしょうか。

select key1, key2, sum(hit_columnA), sum(hit_columnB)
from (
 select key1, key2 , 1 as hit_columnA , 0 as hit_columnB
 from tableX 
 where columnA like '%word%'
 union all
 select key1, key2 , 0 as hit_columnA , 1 as hit_columnB
 from tableX 
 where columnB like '%word%'
) tbl
group by key1, key2
order by key1, key2

もっとスマートなのがあるかもしれませんが

◎質問者からの返答

のちほど検証してみます


2 ● azumi1975
●0ポイント

select *,'hitA' as hit from tableX where columnA like '%word%'

UNION

select *,'hitB' as hit from tableX where columnB like '%word%'

http://www.syboos.jp/database/doc/20080722145442155.html


3 ● y-kawaz
●50ポイント ベストアンサー

例えば以下のようにすれば hit_by_a, hit_by_b というカラムにそれぞれ bool の値が入ります。

select *, (columnA like '%word%') AS hit_by_a, (columnB like '%word%') AS hit_by_b from tableX where columnA like '%word%' or columnB like '%word%';
◎質問者からの返答

おお。エレガントな感じですね。

のちほど検証してみます。


4 ● goog20090901
●0ポイント

回答1も回答3もむちゃくちゃ遅いと思う。

◎質問者からの返答

のちほど検証してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ