作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的 select 语句没有返回正确的结果,尽管疯狂地移动了括号:
SELECT * FROM Table A where (refId != <some refId> and date <= (now() - INTERVAL 10 DAY))
似乎 AND 条件由于某种原因短路了,这意味着如果 refId
实际上等于 refId
有问题,日期并不重要。此语句需要返回没有 refId
的行有问题,但前提是 date
条件也匹配。
例如,我有很多 refIds
,但我想过滤掉其中之一,但只有当 date
也在 10 天窗口之外。
Sample Data: Expected Results:
----------- -----------------
|id|refId| date | refId != 5 AND date <= (now() - INTERVAL 10 DAY)
|1 | 1 | 2018-2-10| Only row 1 should be returned since the
|2 | 5 | 2018-2-14| refId !=5 AND the date is <= 10 days ago.
|3 | 2 | 2018-2-20|
|4 | 5 | 2018-2-22|
|5 | 5 | 2018-2-12|
最佳答案
我想你想要 =
和 or
:
SELECT *
FROM Table A
WHERE (refId = <some refId> OR date <= (now() - INTERVAL 10 DAY))
关于MySQL AND条件括号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48941201/
我是一名优秀的程序员,十分优秀!