这是我的查询
$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,也在查询运行之前,谢谢
简单的解决方法是:
$sql = "SELECT * FROM contact";
if ($language !="" && $language !="Empty" ){
//...
$sql .= " INNER JOIN .....";
}
else {
$sql .= " where isdeleted = 0";
}
// run query...
$query = mysql_query($sql);