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

标签 mysql sql innodb

语句尝试 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/

相关文章:

php - 避免在 MySQL/PHP 中重复显示记录

mysql - 如何正确清理餐 table

sql - 具有日期窗口保存时间的 MAX 解析函数

Mysql在非空字段上插入或更新为空值时不会出错

mysql - 为什么我需要在 mysql (InnoDB) 中回滚 SELECT?

sql - 帮助 MySQL 查询分析被黑的 RockYou 密码数据

php - PHP站点突然出现 "MySQL server has gone away"错误

sql - Django 中的 CharField 和 TextField 有什么区别?

sql - 如何获取sql中的缺失值?

database - 让joomla使用innoDB并支持事务