从同一类别中选择多个产品?
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'
语句尝试 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'