Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一行中有2个SQL查询-如何?_Php_Sql - Fatal编程技术网

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不会,因此速度更快