我需要帮助将其转换为MySQL语句。我需要做类似的事情:
WHERE IF 'field1 > 0' THEN 'field2 < field1'
现在,我有这个MySQL声明,但不起作用?:
SELECT * FROM `my_table` WHERE IF(field1>0, field2<field1, 1=1) AND field3='1';
请告知解决方案。谢谢!
答案 0 :(得分:0)
您只想检查field2 < field1
if field1 > 0
,因此请按照以下方式进行编码:
SELECT * FROM `my_table`
WHERE ((field1 > 0 AND field2 < field1) OR field1 <= 0)
AND field3 = '1';
答案 1 :(得分:0)
您应该使用案例陈述:
SELECT * FROM `my_table`
WHERE
field2< CASE WHEN (field1>0) THEN field1 ELSE field2+1 END
AND field3='1';
答案 2 :(得分:0)
您可以使用逻辑AND和OR来实现此目的。
WHERE (field1 > 0 AND field2 < field1) OR (field1 <= 0 AND <else part of the statement>)
<else part of the statement>
是您要检查field1
是否不是> 0
的条件,除非没有这样的子句,在这种情况下删除OR及其后的所有内容。