5 回答
心有法竹
TA贡献1866条经验 获得超5个赞
你可以if判断了以后在拼入相应的where
ex: $sql = select * from xxx where 1=1;
if(类型!=0){
$sql .= 'and where 类型 = 中餐';
}
红颜莎娜
TA贡献1842条经验 获得超12个赞
查询Mysql是使用字符串来传递Mysql查询命令的,所以要修改where后面的查询条件是完全可行的,可以先建立一个存储这些命令的字符串数组,在用户每次修改条件,例如勾选了地址,就修改数组的相应值,或者在点击查询后,检查界面中那些组件,例如餐类或者地址被勾选了,就获取他们的值,添加到数组中,然后在开始查询是遍历他们,为空的就不做处理,不为空的就添加到统一条件字符串里,最后添加到查询语命令字符串中就可以啦
string cmd = “select * from 表名 where 统一条件”
新手一只,考虑可能不周,不过这中做法应该没什么大问题哈
料青山看我应如是
TA贡献1772条经验 获得超8个赞
我提供一个思路吧,题主的SQL可以这么写:
SELECT * FROM table WHERE (0=地区值 OR 地区=地区值)AND (0=类型值 OR 类型=类型值);
这样的话,在地区值或者类型值为0的时候,因为第一个条件已经为真,所以不判断第二个条件;如果值不为0,则判断第二个条件。
如果我没理解错的话,应该可以满足题主的需求。
添加回答
举报
0/150
提交
取消