我不知道这个查询有什么问题。我想要来自特定卖家的所有不再有效的产品 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/