看板 Database 關於我們 聯絡資訊
資料庫名稱: 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