这是我的查询
$sql = "SELECT * FROM contact where isdeleted = 0 ";
if ($language !="" && $language !="Empty" ){
$language_exp = explode(',', $language);
$sql .= " INNER JOIN contactlanguage ON contact.id = contactlanguage.contactid
INNER JOIN language ON contactlanguage.languageid = language.id where isdeleted = 0 AND language.language in ('".implode("', '", $language_exp)."') ";
}
if ($contactgroup !="" && $contactgroup !="Empty" ){
$contactgroup_exp = explode(',', $contactgroup);
$sql .= " AND contactgroup in ('".implode("', '", $contactgroup_exp)."')";
}
如果我运行该函数,则查询结果如下
SELECT * FROM contact where isdeleted = 0 INNER JOIN contactlanguage ON contact.id = contactlanguage.contactid INNER JOIN language ON contactlanguage.languageid = language.id where isdeleted = 0 AND language.language in ('English', 'Arabic', '')
这里isdeleted = 0
两次可以告诉我如何在查询运行之前的内部条件之前删除isdeleted = 0,谢谢
答案 0 :(得分:1)
简单的解决方案是:
$sql = "SELECT * FROM contact";
if ($language !="" && $language !="Empty" ){
//...
$sql .= " INNER JOIN .....";
}
else {
$sql .= " where isdeleted = 0";
}
// run query...
$query = mysql_query($sql);