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

Postgresを使っておりますが、ここで複数のor文をカッコで囲み、and検索している様にしております。
ただ、LIKEを使うとどうも上手くいきません。
例えば

select * from hatena where type1='1' and(type2 = '2' or type3 = '3')

というようにしております。
※これでSQLが正しいかは分かりませんが、要は()内のor文のうち一つでも、条件が当てはまらないと検索対象から外したいのです。

●質問者: makocan
●カテゴリ:インターネット ウェブ制作
✍キーワード:Hatena SELECT 検索 SQ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● vector
●27ポイント

どのような回答を望んでおられるのか分かりかねますが、

望んでおられる結果を出すには、そのSQLで合っていますよ。

dummy url

http://google.co.jp/

◎質問者からの返答

上記のSQL文で、type1 LIKE '1%'を行わなければ期待通りの結果になるのですが。。。


2 ● nabetomo
●27ポイント

「()内のor文のうち一つでも、条件が当てはまらないと検索対象から外したい」

のであれば

全てandになりますよ。


select * from hatena where type1='1' and type2 = '2' and type3 = '3';

http://www.pursue.ne.jp/jouhousyo/SQLDoc/select05.html

◎質問者からの返答

いや、()内のどれか一つの場合でも、andでいいのでしょうか?これだと、全ての条件に当てはまらないと検索対象にならないような気がします。。。


3 ● きゃづみぃ
●29ポイント

http://cyberam.dip.jp/database/postgres/sql/select/select_main.h...

select * from hatena where (type1 like '1%') and ((type2 = '2') or (type3 = '3'))

としてみたらいかがでしょうか?

◎質問者からの返答

解決しました!

ありがとうございました。

関連質問


●質問をもっと探す●



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