MySQL IF函数 - WHERE'field1> 0'? 'field2< field1':''

时间:2012-08-13 00:17:15

标签: mysql

我需要帮助将其转换为MySQL语句。我需要做类似的事情:

WHERE IF 'field1 > 0' THEN 'field2 < field1'

现在,我有这个MySQL声明,但不起作用?:

SELECT * FROM `my_table` WHERE IF(field1>0, field2<field1, 1=1) AND field3='1';

请告知解决方案。谢谢!

3 个答案:

答案 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及其后的所有内容。