Php 一行中有2个SQL查询-如何?
以下错误肯定是错误的,但正确的方法是什么:Php 一行中有2个SQL查询-如何?,php,sql,Php,Sql,以下错误肯定是错误的,但正确的方法是什么: $query = "SELECT * FROM tblProducts WHERE ProductId ='$SCId' AND SELECT * FROM tblProducts WHERE Cat ='$CatType' AND Type ='$TypeType'"; $rsPrimary=mysql\u查询($query) 或死亡(“查询“$Query”失败,错误消息:\”“.mysql\u error()。”); $num=mysql\u n
$query = "SELECT * FROM tblProducts WHERE ProductId ='$SCId' AND SELECT * FROM tblProducts WHERE Cat ='$CatType' AND Type ='$TypeType'";
$rsPrimary=mysql\u查询($query)
或死亡(“查询“$Query”失败,错误消息:\”“.mysql\u error()。”);
$num=mysql\u numrows($rsPrimary);
mysql_close() WHERE子句中的'AND'语句的右侧需要一个条件。您不能在此处放置SELECT查询。在我看来,您真正想要的是:
SELECT * FROM tblProducts WHERE ProductId ='$SCId'
OR (Cat ='$CatType' AND Type ='$TypeType')
select * from tblProducts
where ProductId ='$SCId'
or ( Cat ='$CatType' AND Type ='$TypeType' )
已经给出的答案对于您的查询是正确的,但是,如果将来要将两个或多个select语句的结果附加在一起,您应该查看UNION或UNION ALL。因此,如果您将第一个和替换为UNION,那么您的原始查询将有效。
UNION会从结果中删除重复项,而UNION ALL不会,因此速度更快