[英]MySQL Conditional IF statement in WHERE clause
我疯了......在搜索了无数的Google之后,无法解决这个问题。 我有下表(净额)
我正在尝试选择与所有者/隐私信息匹配的行。
ID | net | owner | privacy
+++++++++++++++++++++++++++++++++++++++++++++++
1 | 1234 | bob | 1
2 | 2345 | charles | 1
3 | 3456 | city | 0
4 | 4567 | public | 0
如果Bob正在提取行,则应该这样:IF(owner =“ bob”),然后如果privacy = 0则选择该行,否则选择1,如果privacy = 0则选择该行。
他可以提取自己的私有行(privacy = 1)以及任何其他privacy = 0的行
如果尝试过此操作但未产生任何结果:
SELECT * FROM `Net` WHERE IF (STRCMP(owner, 'bob'), 'privacy < 2', 'privacy = 0')
您可以使用or
布尔运算符简化此逻辑:
SELECT *
FROM my_table
WHERE (owner = 'bob' AND (privacy IN (0, 1)) OR privacy = 0
假设privacy
只能是0或1,如果所有者是bob
,则可以完全忽略隐私权and
分支:
SELECT *
FROM my_table
WHERE owner = 'bob' OR privacy = 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.