2017-12-05 30 views
-1

'in'と 'is null'句の間で 'and'演算を使用してnull値と一部の値を含むレコードを取得するにはMySQLのクエリ?'in'でレコードを取得する方法とnull句です

クエリ: select * from table1 where column in (value1,value2) or column is null;(works fine). が、私はand代わりのorを使用する場合、私は空のセットを取得しています。

+2

値はヌルとヌルの両方にできません。いくつかのサンプルデータとそれを取得しようとしている結果を教えてください。それは質問をはるかに明確にするでしょう。 – Mureinik

+0

実行しようとしているクエリは次のとおりです。select * from table where(value1、value2)およびcolumn1の値がnullの場合、空のset.whileクエリselect *テーブルのwhere1(value1、value2)またはcolumn1 is nullうまく動作します – 123

+0

また、あなたの問題を示すいくつかのデータを示してください。私はあなたが複数のレコードに集約するときにこの問題があると想像することができますが、単一のレコードでは理にかなっていません。 –

答えて

0

WHERE句の条件が各行に適用されます。

FROM bar WHERE foo IN ('a','b','c') AND foo IS NULL 

bar内の任意の行に対してTRUEに評価しないように保証されています。行のの値はfooです。その値はNULLであっても、NULLでなくてもかまいません。 fooの値は、条件が評価されているときにNULLでなくNULLでなくてもかまいません。

定義により、WHERE foo IS NOT NULL AND foo IS NULLは決して真と評価されません。その条件を満たす行がないことが保証されています。

+0

疑問を解決していただきありがとう – 123

関連する問題