日期:2014-05-20  浏览次数:20712 次

关于查询参数不同sql语句拼接的问题
同时传来3个参数做为条件,怎样拼接这个sql语句
select   *   from   (select   *   from   b   where   aa= 'bb ')   a   ....   (假设的   不用关心正确与否,关键是拼接后边的3个参数)
3个参数传过来并不知道哪个有值怎样在后边加上where条件,有可能按照一个参数做为条件,有可能三个参数做为条件(...and....and......)

------解决方案--------------------
//第一个参数不是空
if(! " ".equals(parameter1.trim()))
{
strSql.append( "WHERE aa= ' " + parameter1.trim() + " ' ");
//分别添加第二三个条件
if(! " ".equals(parameter2.trim()))
{
strSql.append( " AND bb= " + parameter2.trim() + " ' ");
}
if(! " ".equals(parameter3.trim()))
{
strSql.append( " AND cc= " + parameter3.trim() + " ' ");
}
}
//第一个参数为空,添加第二三个条件需要加Where
else
{
//第二个参数不为空,Where 加在前面,同时对第三个参数进行判断。
if(! " ".equals(parameter2.trim()))
{
strSql.append( " WHERE bb= " + parameter2.trim() + " ' ");
if(! " ".equals(parameter3.trim()))
{
strSql.append( " AND cc= " + parameter3.trim() + " ' ");
}
}
//第二个参数为空,对第三个参数进行判断,Where 加在第三个参数前面。
else
{
if(! " ".equals(parameter3.trim()))
{
strSql.append( " WHERE cc= " + parameter3.trim() + " ' ");
}
}
}没测过,不知道逻辑对不对,也不知道楼注是不是这个意思。
好像还能简化,我随便写的,仅供楼注参考
------解决方案--------------------
sqlfh= " ";

if(!jTextField1.getText().equals( " ")){
sqlfh=sqlfh+ " 图书名称= ' "+adaptee.jTextField1.getText()+ " ' and ";
}
if(!jTextField2.getText().equals( " ")){
sqlfh=sqlfh+ " 出版社= ' "+adaptee.jTextField2.getText()+ " ' and ";
}
if(!jTextField3.getText().equals( " ")){
sqlfh=sqlfh+ " 作者= ' "+adaptee.jTextField3.getText()+ " ' and ";
}

if(sqlfh== " ")
{
sqlfh= "select * from friends ";
}
else
{
sqlfh= "select * from friends where "+sqlfh.substring(0,(sqlfh.length()-5));
System.out.println(sqlfh);
}
------解决方案--------------------
sqlfh= "select * from friends where 2> 1 ";
if(!jTextField1.getText().equals( " ")){
sqlfh=sqlfh+ " and 图书名称= ' "+adaptee.jTextField1.getText()+ " ' ";
}
if(!jTextField2.getText().equals( " ")){
sqlfh=sqlfh+ " and 出版社= ' "+adaptee.jTextField2.getText()+ " ' ";
}
if(!jTextField3.getText().equals( " ")){
sqlfh=sqlfh+ " and 作者= ' "+adaptee.jTextField3.getText()+ " ' ";
}
------解决方案--------------------
SQL语句有 为任意的函数吗?可以在 条件中加 aa=任意 之类