从同一类别中选择多个产品?

Selecting multiple products from the same category?

语句尝试 1:

它似乎忽略了一切,无论国家如何都能从任何地方获得产品

SELECT *
FROM products
WHERE `country` = 'America' AND
      product = 'Product 1' AND
      product = 'Product 2' AND
      completed = 'complete'

语句尝试 2:

结果是返回 0 个结果,即使结果是假设的。

SELECT *
FROM products
WHERE `country` = 'America' AND
      product = 'Product 1' OR
      product = 'Product 2' AND
      completed = 'complete'

由于 product = product 1 AND product = product 2,您的第一个查询在逻辑上是不正确的,where 子句逐行过滤行,因此同一行不能同时包含产品列中的两个值。


您的第二个查询有一个您引入的问题和 OR 标准,因此如果产品 2 的状态在另一个国家完成,它会忽略国家过滤器,要更正您的查询,您需要将 OR 标准分组使用括号 (condition 1 or condition 2) and some other condition

SELECT *
FROM products
WHERE `country` = 'America'
      AND (product = 'Product 1' OR product = 'Product 2')
      AND completed = 'complete'

或者您可以使用 IN 子句来简化您的标准

SELECT *
FROM products
WHERE `country` = 'America'
      AND product IN('Product 1','Product 2')
      AND completed = 'complete'