私がやりたいのは、特定の値(動的にロードされる)=特定の値の場合にのみwhere句を実行することです。例えば
IF ('<=' == '$dynamic_value') THEN WHERE...
これは可能ですか?($ dynamic値は<=、または> =のいずれかになります)
つまり、where句は、特定の値が発生したとき、または呼び出されたときにのみ使用したいと思います。
次のような句でCASE
式を使用できます。WHERE
SELECT *
FROM tbl
WHERE
CASE '$dynamic_value'
WHEN '>=' THEN column_a >= column_b AND other_conditions
WHEN '<=' THEN column_a <= column_b AND other_conditions
ELSE 1
END
がまたはの$dynamic_value
いずれにも等しくない場合は、代わりに句によって使用されます。これは、基本的に句がまったくない(そしてすべてのレコードを返す)ようなものです。>=
<=
ELSE 1
WHERE
WHERE
PHPを使用しているようで、の値はまたは$dynamic_value
のみであるため、次のようにパラメータを直接挿入できます。>=
<=
$sql = "
SELECT *
FROM tbl
WHERE column_a $dynamic_value column_b";
もちろん、ユーザー入力から来る場合は、がまたは$dynamic_value
のどちらであるかを確認していることを確認してください。>=
<=
条件ではなくIF
、これは通常、のブール論理で処理されWHERE
ます。動的な値を、AND
それに対応する条件と一緒に一致させます。
WHERE
('$dynamic_value' = '<=' AND othercolumn = othercondition)
OR ('$dynamic_value' = '>=' AND othercolumn = someothercondition)
次のようなもので同様の効果を達成できます。
WHERE $dynamic_value <> '<=' OR <your-other-clause>
そうすれば、がに設定されて<your-other-clause>
いない限り、ビットは効果がありません。$dynamic_value
'<='