資料庫名稱: 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種組合
要是條件增加, 語句就會很臃腫.....
========================================================================
請問有比較靈活的寫法嗎 ?
感謝解答