質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

4回答

5932閲覧

booleanを使ってSQL文の分岐をしたい。

ya-ya-ya

総合スコア13

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2016/04/26 01:26

入力がさせているかされていないかで真偽値を決めて、項目の一つだけ入力されていたらWHERE句のSQL文を作成し、二つ以上の項目で入力されていたらANDを入れるSQL文を作成したいです. booleanで初期値をfalseにしておいて入力があればtrueになるようなプログラムできないでしょうか?・・・

初心者で、日本語が間違っているかもしれませんがお願いします.

String select = "SELECT ID, NAME, ENTRYDATE FROM TABLE1"; if((userListForm.getUserID()!= null && !userListForm.getUserID().equals("")) || (userListForm.getName()!= null && !userListForm.getName().equals(""))) { select +=" WHERE "; } if(userListForm.getUserID()!= null && !userListForm.getUserID().equals("")){ select = select+ " ID LIKE '%" + userListForm.getUserID() + "%'"; } if(userListForm.getName()!= null && !userListForm.getName().equals("")){ select = select+ " NAME LIKE '%" + userListForm.getName() + "%'"; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

java

1String select = "SELECT ID, NAME, ENTRYDATE FROM TABLE1"; 2String where = " WHERE "; 3if(userListForm.getUserID()!= null && !userListForm.getUserID().equals("")){ 4 select += where + " ID LIKE '%" + userListForm.getUserID() + "%'"; 5 where = " AND "; 6} 7if(userListForm.getName()!= null && !userListForm.getName().equals("")){ 8 select += where + " NAME LIKE '%" + userListForm.getName() + "%'"; 9}

こんな感じ?

投稿2016/04/26 01:33

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ya-ya-ya

2016/04/26 02:36

回答ありがとうございます。
guest

0

WHEREの先頭に、必ずtrueになる条件を入れておけば、以降の条件は全てAND付きでOKです。

java

1StringBuilder sql = new StringBuilder("SELECT ID, NAME, ENTRYDATE FROM TABLE1 WHERE 0 = 0"); 2if (userListForm.getUserID() != null && !userListForm.getUserID().equals("")) { 3 sql.append(" AND ID LIKE '%").append(userListForm.getUserID()).append("%'"); 4} 5if (userListForm.getName() != null && !userListForm.getName().equals("")) { 6 sql.append(" AND NAME LIKE '%").append(userListForm.getName()).append("%'"); 7}

投稿2016/04/26 02:18

編集2016/04/26 02:20
root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ya-ya-ya

2016/04/26 02:35

回答ありがとうございます。
guest

0

Where句用の変数を作成すればどうでしょうか?
Javaが分からいので文法が間違ってたらすいません。

String select = "SELECT ID, NAME, ENTRYDATE FROM TABLE1"; String where = "" if(userListForm.getUserID()!= null && !userListForm.getUserID().equals("")) { if(!String.IsNullOrEmpty(where)) { where += " AND "; } where = where + " ID LIKE '%" + userListForm.getUserID() + "%'"; } if(userListForm.getName()!= null && !userListForm.getName().equals("")) { if(!String.IsNullOrEmpty(where)) { where += " AND "; } where = where + " NAME LIKE '%" + userListForm.getName() + "%'"; } if(!String.IsNullOrEmpty(where)) { select += " WHERE " + where; }

投稿2016/04/26 01:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaputaros

2016/04/26 02:14 編集

C#か何かですかね? JavaのStringクラスにIsNullOrEmpty()というメソッドはないですよ。 自作でメソッドを作るしかありません。
ya-ya-ya

2016/04/26 02:36

回答ありがとうございます。
guest

0

それぞれの入力項目について部分的なSQL文(" ID LIKE '%" + userListForm.getUserID() + "%'"のような部分に該当)だけ作り、入力がない項目についてはnullにしておきます。
そしてあとから「両方nullでないか、片方nullか」などの条件で分岐して最終的なSQL文を作成するといいのではないでしょうか。

投稿2016/04/26 01:31

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ya-ya-ya

2016/04/26 02:36

回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問