[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