我的查询的简化版本
SELECT *
FROM logs
WHERE pw='correct' AND CASE WHEN id<800 THEN success=1 ELSE END
AND YEAR(timestamp)=2011
这是行不通的。我想做的是添加success=1
仅适用于具有id<800
,否则忽略此检查。
我该怎么写这个?谢谢!
编辑:澄清一下,这就是表格的样子
|id | pw | success |
--------------------------
|700 | correct | 1 |
|710 | correct | 1 |
|900 | correct | NULL |
|999 | correct | 0 |
我正在尝试返回所有行、列pw
不容忽视。
您不必使用 CASE...WHEN,您可以使用 OR 条件,如下所示:
WHERE
pw='correct'
AND (id>=800 OR success=1)
AND YEAR(timestamp)=2011
这意味着如果 id
这种情况不太常见,但是您仍然可以使用 CASE WHEN,如下所示:
WHERE
pw='correct'
AND CASE WHEN id<800 THEN success=1 ELSE TRUE END
AND YEAR(timestamp)=2011
这意味着:返回success=1
(可以是 TRUE 或 FALSE)如果 id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)