where句をある条件に従って変更するクエリを作成することはできますか?たとえば、私はtable1から* 19/July/2016のデータを選択したいが、フィールドidがnullの場合は何もしない、そうでない場合はidを他のものと比較する。クエリーのように?Where節のMySQL IF
Select * from table1 where date="2016-07-19" if(isnull(id),"",and id=(select * from ...))
where句をある条件に従って変更するクエリを作成することはできますか?たとえば、私はtable1から* 19/July/2016のデータを選択したいが、フィールドidがnullの場合は何もしない、そうでない場合はidを他のものと比較する。クエリーのように?Where節のMySQL IF
Select * from table1 where date="2016-07-19" if(isnull(id),"",and id=(select * from ...))
はい。これは可能なはずです。
我々はdate
とid
は、私はあなたが達成しようとしているものを理解していた場合、私たちのようなクエリを書くことができ、(残念ながらという名前の)テーブルtable1
で列への参照であると仮定した場合この:それを行うには、いくつかの要件があるかどう
SELECT t.id
, t.date
, t....
FROM table1 t
WHERE t.date='2016-07-19'
AND ( t.id IS NULL
OR t.id IN (SELECT expr FROM ...)
)
また、MySQLのIF()
とIFNULL()
機能を組み込むことが可能です。
SQLステートメントがデータベースに送信された後に動的にテキストを変更する限り、それは不可能です。 SQL文を動的に変更するには、の前にがデータベースに送信されます。
私の個人的な好みは、IN (subquery)
述語ではなく結合操作を使用することです。
私はあなたがあまりにも難しいと思っています。 idがNULL
の場合、where句にFALSE
があるのと同じです。したがって:
Select * from table1 where date="2016-07-19" and id=(select * from ...)
必要なレコードのみに一致する必要があります。 id
がNULL
の場合、何も得られません。
OK、2つの答え、1つの鉱山が、あなたが望むものをさまざまな方法で解釈しています。だから、あなたは何を意味するのかを明確にするために質問を編集したいかもしれません。 – MAP