這是一個多條件查詢拼接的語句
if($sex and is_array($service)){
$values = implode("%' OR service LIKE '%",$service);$sql.=" and service like '%".$values."%' ";$sql.=" and sex='$sex'";
}
現在存在一個問題,如果在這種條件下會產生的結果是:
select * from dr_member_data where zsoff='是' and sfph='1' and uid<>'1' and sex='男' and service = '%逛街%' OR service = '%就醫陪診%'limit 0,10
資料庫中將產生結果:
那麼最後一條:sex=女 的這條資訊的結果是不匹配的 是從$sql.=" and service like '%".$values."%' ";得出的結果,我想排除$sql.=" and service like '%".$values."%' "; sex=女的這條結果,sql語句應該怎麼拼接呢
回複內容:
這是一個多條件查詢拼接的語句
if($sex and is_array($service)){
$values = implode("%' OR service LIKE '%",$service);$sql.=" and service like '%".$values."%' ";$sql.=" and sex='$sex'";
}
現在存在一個問題,如果在這種條件下會產生的結果是:
select * from dr_member_data where zsoff='是' and sfph='1' and uid<>'1' and sex='男' and service = '%逛街%' OR service = '%就醫陪診%'limit 0,10
資料庫中將產生結果:
那麼最後一條:sex=女 的這條資訊的結果是不匹配的 是從$sql.=" and service like '%".$values."%' ";得出的結果,我想排除$sql.=" and service like '%".$values."%' "; sex=女的這條結果,sql語句應該怎麼拼接呢
select * from dr_member_data where zsoff='是' and sfph='1' and uid<>'1' and sex='男' and (service = '%逛街%' OR service = '%就醫陪診%') limit 0,10
if($sex and is_array($service)){ $values = implode("%' OR service LIKE '%",$service); $sql.=" and (service like '%".$values."%')"; $sql.=" and sex='$sex'"; }
select * from dr_member_data where (zsoff='是' and sfph='1' and uid<>'1' and sex='男' and service = '%逛街%') OR service = '%就醫陪診%'limit 0,10