我正在尝试使用国家/地区过滤用户。 $country
是一个包含国家/地区名称的数组。我想以这样的方式运行查询:如果国家/地区没有任何内容,则查询会为我提供所有行。我怎么能实现这一点。
我这样做:
"SELECT * from users where country IN('".implode("','",$country)."')";
提前致谢
答案 0 :(得分:5)
$sql = "SELECT * FROM users";
if($country) {
$sql .= " WHERE country IN('" . implode("','", $country) . "')";
}
答案 1 :(得分:0)
对于每个过滤器项,只检查它是否为NULL(即不根据此过滤结果)或者它是否等于/:
SELECT *
FROM users
WHERE ('".implode("','",$country)."' IS NULL OR country IN('".implode("','",$country)."'))
AND ($forename IS NULL OR forename = $forename)