[SQL ] 關於查詢 [多重條件] 問題

看板Database作者 (執著是苦)時間9年前 (2014/11/26 11:03), 編輯推噓2(202)
留言4則, 4人參與, 最新討論串1/2 (看更多)
資料庫名稱: 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

11/26 12:26, , 1F
你這是程式問題 不是SQL問題XD
11/26 12:26, 1F

11/26 13:47, , 2F
用程式解決吧
11/26 13:47, 2F

11/26 17:15, , 3F
有種語法叫回圈
11/26 17:15, 3F

11/28 17:06, , 4F
感謝解答
11/28 17:06, 4F
文章代碼(AID): #1KTKBjS6 (Database)
文章代碼(AID): #1KTKBjS6 (Database)