指定されたパラメータが存在する場合、MySQLの文のチェックを実行する方法を探しています。私が覚えているように、私はそれを達成するためにOracleで次のことを行うことができます:パラメータがnullの場合のMySQL構文のチェック
select s.* from Site s
where s.study = :study
and (:enabled is null or s.enabled = :enabled)
これもMySQLでも可能なことですか?同じコードはエラーなしで実行されますが、決してレコードを返しません。
私の目標は、私のJavaコードで複数のlfsとelsesを避けることです。
select s.* from Site s
where s.study = :study
及びそのようなパラメータがnullでない場合:有効なパラメータがnullの場合には、クエリはそのように見えるというように動作しなければならない
select s.* from Site s
where s.study = :study
and s.enabled = :enabled
と私は単一であることやりたいですクエリ
'AND(s.enabled IS NULL OR s.enabled =:enabled)' –
':enabled is nullはむしろ意味がありません。クライアントサイドのコードで、dbを使わずにそれをチェックすることができます。 ':enabled'の値はあなたが提供する値です。あなたは '' s.enabled''をテストする必要があるということを意味しています。 –
すべての可能性のあるケースに対して1つのクエリしかないと想像すれば、それほど意味がありません。いいえ、elsesの男性はいません。それは非常に便利です。目的は、パラメータが実際にはnullの場合、そのクエリの列全体ではなく、パラメータ全体を無効にすることです。 – smoczyna