【问题标题】:2 SQL queries in one line - how?一行中的 2 个 SQL 查询 - 如何?
【发布时间】: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();

【问题讨论】:

    标签: php sql


    【解决方案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 不会,因此速度更快。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-10-15
            • 2017-08-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-24
            • 2022-06-10
            相关资源
            最近更新 更多