语句尝试 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 子句逐行过滤行,因此单个行不能同时包含 product 列中的两个值.
您的第二个查询有一个您引入的问题和
OR
标准,因此如果产品 2 的状态在另一个国家/地区已完成,它会忽略国家/地区过滤器,要更正您的查询,您需要将您的 OR
使用括号 (条件 1 或条件 2)和其他一些条件的条件
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'
关于mysql - 从同一类别中选择多个产品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010610/