作者godsing (執著是苦)
看板Database
標題[SQL ] 關於查詢 [多重條件] 問題
時間Wed Nov 26 11:03:07 2014
資料庫名稱: postgres
資料庫版本: 1.20 beta 1
內容/問題描述:
我想要查詢一筆資料
可以任選三個條件或一個, 也可以一個條件都不選(列出全資料)
以下是我的寫法
StringBuilder sb = new StringBuilder();
sb.append("SELECT new map( 資料 FROM 表單");
if(!條件1.equals("none")){
sb.append(" WHERE 欄位1 = 條件1");
if(!條件2.equals("none")){
sb.append(" AND 欄位2 = 條件2");
if(!條件3.equals("none"))
sb.append(" AND 欄位3 = 條件3");
}
if(!條件3.equals("none"))
sb.append(" AND 欄位3 = 條件3");
}
else if(!條件2.equals("none")){
sb.append(" WHERE 欄位2 = 條件2");
if(!條件3.equals("none"))
sb.append(" AND 欄位3 = 條件3");
}
else if(!條件3.equals("none"))
sb.append(" WHERE 欄位3 = 條件3");
sb.append(" ORDER BY ?");
缺點當然就是3個條件就有7種組合
要是條件增加, 語句就會很臃腫.....
========================================================================
請問有比較靈活的寫法嗎 ?
感謝解答
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.144.223
※ 文章網址: http://www.ptt.cc/bbs/Database/M.1416970989.A.706.html
推 GoalBased: 你這是程式問題 不是SQL問題XD 11/26 12:26
→ terrybob: 用程式解決吧 11/26 13:47
推 ClubT: 有種語法叫回圈 11/26 17:15
→ godsing: 感謝解答 11/28 17:06