Ваш первый запрос является логически неправильным из-за product = product 1 AND product = product 2
, где предложение фильтрует строки одну за другой, поэтому одна строка не может содержать оба значения в столбце продукта.
Ваш второй запрос имеет проблему, которую вы ввели, и критерии
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'