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

作者: godsing (執著是苦)   2014-11-26 11:03:07
資料庫名稱: 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種組合
要是條件增加, 語句就會很臃腫.....
========================================================================
請問有比較靈活的寫法嗎 ?
感謝解答
作者: GoalBased (Artificail Intelligence)   2014-11-26 12:26:00
你這是程式問題 不是SQL問題XD
作者: terrybob (罪雲樵)   2014-11-26 13:47:00
用程式解決吧
作者: ClubT (小喬)   2014-11-26 17:15:00
有種語法叫回圈
作者: godsing (執著是苦)   2014-11-28 17:06:00
感謝解答

Links booklink

Contact Us: admin [ a t ] ucptt.com