一行中的 2 个 SQL 查询 - 如何?
Posted
技术标签:
【中文标题】一行中的 2 个 SQL 查询 - 如何?【英文标题】:2 SQL queries in one line - how? 【发布时间】:2009-06-08 11:06:17 【问题描述】:以下错误,所以肯定是错的,但是正确的做法是什么:
$query = "SELECT * FROM tblProducts WHERE ProductId ='$SCId' AND SELECT * FROM tblProducts WHERE Cat ='$CatType' AND Type ='$TypeType'";
$rsPrimary = mysql_query($query) or die ("Query '$query' failed with error message: \"" . mysql_error () . '"'); $num=mysql_numrows($rsPrimary); mysql_close();
【问题讨论】:
【参考方案1】: SELECT * FROM tblProducts WHERE ProductId ='$SCId'
OR (Cat ='$CatType' AND Type ='$TypeType')
【讨论】:
【参考方案2】:在我看来你真正想要的是:
select * from tblProducts
where ProductId ='$SCId'
or ( Cat ='$CatType' AND Type ='$TypeType' )
【讨论】:
【参考方案3】:WHERE 子句中的“AND”语句期望其右侧有一个条件。您不能在此处放置 SELECT 查询。
【讨论】:
【参考方案4】:已经给出的答案对于您的查询是正确的,但是如果将来您想将两个或多个 select 语句的结果附加在一起,您应该查看 UNION 或 UNION ALL。因此,如果您将第一个查询替换为 UNION,那么您的原始查询将会起作用。 UNION 会从结果中删除重复项,UNION ALL 不会,因此速度更快。
【讨论】:
以上是关于一行中的 2 个 SQL 查询 - 如何?的主要内容,如果未能解决你的问题,请参考以下文章