作者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://webptt.com/cn.aspx?n=bbs/Database/M.1416970989.A.706.html
1F:推 GoalBased: 你这是程式问题 不是SQL问题XD 11/26 12:26
2F:→ terrybob: 用程式解决吧 11/26 13:47
3F:推 ClubT: 有种语法叫回圈 11/26 17:15
4F:→ godsing: 感谢解答 11/28 17:06