2017-02-13 12 views
2

MySQLWorkbenchで次のクエリを実行した後、最初の行だけが返されました。このことからWHERE条件がNULLと評価される行?

select * from (
    select true as a 
    union select false as a 
    union select null as a 
) x 
where a 

私のお持ち帰りクエリのwhere句がnullに評価するように、行が除外されるということです。しかし、私はこの動作のドキュメントを見つけることができませんでしたので、私はこの動作が常にそれに依存するクエリを書く前に発生すると仮定できるかどうかを確認したいと思いました。したがって、

  1. この動作は常に発生します、そうであれば、

  2. は、そのドキュメントはありますか?

答えて

2

はい、この動作は予期したとおりです。ドキュメント(https://dev.mysql.com/doc/refman/5.7/en/working-with-null.html)から

:MySQLの、0またはNULLで

がfalseを意味し、何かが真の意味。ブール演算のデフォルトの真理値は1です。

したがって、nullとfalseの両方が除外され、trueの行のみが返されます。

関連する問題