MySQL - AND/OR 逻辑 - 怎么了?

标签 mysql

我不知道这个查询有什么问题。我想要来自特定卖家的所有不再有效的产品 ID。要“有效”,产品必须是 active='Y' AND expireDate>=NOW() AND statusid = 20(其中几个无效)。

这是查询

    SELECT DISTINCT(productID) FROM products
    WHERE sellerID IN
    (/*list of sellerIDs*/) 
    AND (active != 'Y' OR statusid != 20 OR expireDate < NOW())

和一些示例数据(全部来自上面子查询中的 sellerIDs)

    productID | active | statusid | expireDate
    1         |   Y    |     20   | 2015-08-01
    2         |   N    |     20   | 2015-08-01
    3         |   Y    |     0    | 2015-08-01
    4         |   Y    |     20   | 2015-07-01

我希望得到 2、3 和 4。

最佳答案

因此在问题陈述中它说我们需要在 active、statusid 和 expireDate 之间进行 AND。请使用以下查询:

SELECT DISTINCT(productID) FROM products
WHERE sellerID IN
(/*list of sellerIDs*/) 
AND active != 'Y' AND statusid != 20 AND expireDate < NOW()

关于MySQL - AND/OR 逻辑 - 怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31270801/

相关文章:

php - 如何使用 PHP 从 MySql 数据库中删除用户

android - 如何从表中选择数据并将其保存在android中的变量中

mysql - 创建简单表时出错

mysql - 在 @INC 中找不到 Email/MIME.pm

php - Mysql - 在一个字段标题下显示多行

mysql - SQL 中关于供应商 ID 的列名称不明确的查询错误

jquery - Ajax 成功后触发迷你图内联图

mysql - MySQL中触发自增组合键

php - 货币的浮点精度 : using "round" function in MySQL query vs PHP vs Javascript

mysql - 如何根据特定条件将数据从一张表拉取到另一张表?