我需要帮助将其翻译成 MySQL 语句。我需要做类似的事情:
WHERE IF 'field1 > 0' THEN 'field2 < field1'
现在,我有这个 MySQL 语句,但不起作用?:
SELECT * FROM `my_table` WHERE IF(field1>0, field2<field1, 1=1) AND field3='1';
请为此提供解决方案。谢谢!
我需要帮助将其翻译成 MySQL 语句。我需要做类似的事情:
WHERE IF 'field1 > 0' THEN 'field2 < field1'
现在,我有这个 MySQL 语句,但不起作用?:
SELECT * FROM `my_table` WHERE IF(field1>0, field2<field1, 1=1) AND field3='1';
请为此提供解决方案。谢谢!
你只想检查field2 < field1
if field1 > 0
,所以这样编码:
SELECT * FROM `my_table`
WHERE ((field1 > 0 AND field2 < field1) OR field1 <= 0)
AND field3 = '1';
您应该使用 case 语句:
SELECT * FROM `my_table`
WHERE
field2< CASE WHEN (field1>0) THEN field1 ELSE field2+1 END
AND field3='1';
您可以通过使用逻辑 AND 和 OR 来实现这一点。
WHERE (field1 > 0 AND field2 < field1) OR (field1 <= 0 AND <else part of the statement>)
The<else part of the statement>
是您要检查 if field1
is not的条件> 0
,除非没有这样的子句,在这种情况下,删除 OR 及其后面的所有内容。