• 締切済み

SQL構文について教えて下さい!

こんばんわ。 いつもお世話になっております。 ServletでIPアドレスを取得してデータベースに登録してあるデータであって尚且つ、AuthorityというカラムにAかBのどちらかがあるデータを抽出するSQLを作成しているのですが上手くいきません。 教えて下さい!お願いします。 作成中のSQL構文を途中から投稿致します。 String RemoteAdd = request.getRemoteAddr(); try { String sql = "SELECT * FROM Api where (Authority = 'A' OR Authority = 'B') AND IPAddress='"+ RemoteAdd +"'"; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery();

みんなの回答

noname#245936
noname#245936
回答No.1

JavaもServletも知りませんが。 SQLだけは何でも書ける者です。 ふと見るに。 テーブル構造、DBMSの種類が判らないのでFiedName、構文が 完全にあってるか全然判らないですが。 何だか構文的には合ってそうなSQL文ですね。 ここはひとつ、C++でいうPrintf、VBでいうDebug.Printで SQL文成立後の文字列をデバッグ中に出力し、そのSQLを対象の DBMSに直接投げて検証してみてはいかがでしょうか? ちなみに。 SELECT 「*」は素人の書き方でして(笑)。 仕様変更に弱いので、欲しいフィールド名を手間でも列挙しないと バグやパフォーマンス劣化の元になりますよ。

earlgyreprince
質問者

お礼

ありがとうございます☆ 聞いてばかりもよくないとは思うのですが分かりませんで・・・ Debug.Print忘れてました。。。 1度検証してみます! なんかJavaの記述が悪い気がしてきました。。。 「*」はよろしくないのですか? 今まではずっとアスタを使っていました。 カラムが多いので・・・ 勉強になりました!これからはカラムを列挙するようにします♪

関連するQ&A