日期:2014-05-18  浏览次数:20691 次

关于搜索的问题
我是新手   第一次做网站
是做一个房产信息的网站   上面有一个可以让用户搜索房源信息的东西
比如用户可以搜索某个城市租金低于1000元/月的租赁房
或者搜索某个城市所有要出售的2手房
或者搜索某个城市房价高于6000元/平方米的房子
因为有好几个条件   所以可以有很多种组合   每个组合都需要一个不同的SQL语句来抓数据   我想不出好办法   只能用最笨的办法   每个组合写一个SQL语句-_-!!!
所以我想请教一下各位前辈   有没有什么好的办法
不胜感激~~~~
^_^

------解决方案--------------------
SELECT * FROM database
WHERE (city = ? AND 0 <rent <=1000)
OR (city = ? AND flatflag = 2)
OR (city = ? AND flatValue> 6000)

不过我觉得还可以不同的条件来设置不同的SQL语句

例如

String tempSql = " ";

if(用户选择条件1)
tempSql = "city = ? AND 0 <rent <=1000 ";
else if(用户选择条件2)
tempSql= "city = ? AND flatflag = 2 ";
else if (用户选择条件3)
tempSql= "city = ? AND flatValue> 6000 ";

String sql = "SELECT * FROM database WHERE " + tempSql;


------解决方案--------------------
有点错误
StringBuffer sql= new StringBuffer( "SELECT * FROM database WHERE " ) ;
if(用户选择条件1==true)
sql.append( "city = ' ").append(city).append( " ' ");
if(用户选择条件2==true)
sql.append( "flatValue> ").append(flatValue)
if (用户选择条件3==true)
sql.append( "flatflag = ").append(flatflag )

------解决方案--------------------
如果一个条件都没选择的话楼上的语句就是错误的了,修改如下

StringBuffer sql= new StringBuffer( "SELECT * FROM database WHERE 1=1 " ) ;
if(用户选择条件1==true)
sql.append( " and city = ' ").append(city).append( " ' ");
if(用户选择条件2==true)
sql.append( " and flatValue> ").append(flatValue)
if (用户选择条件3==true)
sql.append( " and flatflag = ").append(flatflag )