0

我需要帮助将其翻译成 MySQL 语句。我需要做类似的事情:

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

现在,我有这个 MySQL 语句,但不起作用?:

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

请为此提供解决方案。谢谢!

4

3 回答 3

0

你只想检查field2 < field1if field1 > 0,所以这样编码:

SELECT * FROM `my_table`
WHERE ((field1 > 0 AND field2 < field1) OR field1 <= 0)
AND field3 = '1';
于 2012-08-13T00:25:24.643 回答
0

您应该使用 case 语句:

SELECT * FROM `my_table` 
WHERE 
  field2< CASE WHEN (field1>0) THEN field1 ELSE field2+1 END 
  AND field3='1';
于 2012-08-13T00:25:26.767 回答
0

您可以通过使用逻辑 AND 和 OR 来实现这一点。

WHERE (field1 > 0 AND field2 < field1) OR (field1 <= 0 AND <else part of the statement>)

The<else part of the statement>是您要检查 if field1is not的条件> 0,除非没有这样的子句,在这种情况下,删除 OR 及其后面的所有内容。

于 2012-08-13T00:25:57.517 回答