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>)

<else part of the statement>は、そうでないかどうかを確認する条件です。そのような句がfield1ない> 0場合を除き、そのような句がない場合は、OR とその後のすべてを削除します。

于 2012-08-13T00:25:57.517 に答える