iT邦幫忙

0

MYSQL語法- 複合查詢 組合查詢

SQL語法-多條件查詢

我是使用MYSQL

我想輸入某人的account、birthday、user_id、address
查詢一個我database裡面的資料

這幾個你可以填也可以不填,按下SEARCH都要去找相關資料
假設你只填Birthday可能跑出三個birthday同樣的人的所有欄位

應該是 select * from users where ..........
上網查了很多種寫法都不對
資料不填 送出之後,資料好像不是NULL是 '' 空字串
所以一些ifnull也都失敗

我現在的寫法是把四個條件寫死
有填欄位1 欄位234不填
有填欄位2 欄位134 不填
......

總共C4取1 +C4取2+C4取3+C4取4(全都填) 共15個條件 有夠麻煩
有整合的寫法嗎?

String query = "select * from users where account=? and birthday=? and address=? and user_id=?";

這是我四個都有填的query

reparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1, acc);
pstmt.setString(2, btd);
pstmt.setString(1, addr);
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();

		以上是我執行QUERY的程式碼
		
		感謝大家
wonton iT邦高手 6 級 ‧ 2016-06-17 08:45:17 檢舉
為什麼不是先判斷輸入變數是否為空值,再去組 query string 的 where 要有幾個條件?
樓上正解,基本上在後端程式碼中要去判斷是否為空值
如果是,就不會加入到 QUERY 語法內
大多數的設計都是這麼做的

1 個回答

0
fillano
iT邦超人 1 級 ‧ 2016-06-16 19:20:18

可以考慮用sql/query builder這類的工具來建立查詢,例如:

c9s/SQLBuilder

我要發表回答

立即登入回答