私のクエリは正しい結果を与えていない値ながら:のMySQL - 不正なクエリ結果はnullをチェックすると、私は電子メールを持っていないユーザーのレコードを選択しようとすると、
select * from users where email=''
そして:
select * from users where email=NULL
を両方とも異なる結果をもたらしますが、どちらも正しい結果をもたらしません。どうすれば正しい結果を得ることができますか?
私のクエリは正しい結果を与えていない値ながら:のMySQL - 不正なクエリ結果はnullをチェックすると、私は電子メールを持っていないユーザーのレコードを選択しようとすると、
select * from users where email=''
そして:
select * from users where email=NULL
を両方とも異なる結果をもたらしますが、どちらも正しい結果をもたらしません。どうすれば正しい結果を得ることができますか?
IS NULLまたはIS NOT NULLです。
select * from users where email IS NULL
は、ユーザーが「何の電子メール」を持つことができない方法によっては、NULLフィールドNULL可能にするために、フィールドのデフォルト値を設定する必要があります。次に、そのテーブルの新しいレコードの挿入が実行されると、電子メールは空ではなくNULLになります。空としてNULL治療、email
のための「空」の値であなたのすべてのレコードをあげる
select * from users where LENGTH(COALESCE(email,'')) = 0
:あなたはすでに不一致テーブルで立ち往生している場合
また、のようなものを試してみてください。
MySQLは
email=''
ブランク値をチェックし、それらの両方が異なる結果を与える理由であるヌル値に対してemail=NULL
チェック異なるそれらの両方を扱います。
is NULL
を使用すると、空白値とヌル値の両方がチェックされます。
SELECT * FROM users WHERE email IS NULL
nullはnullではありません。
あなたが指定する必要がありますIS NULL
正確に。何らかの理由でMySQLでNULLがNULLに等しくない。 私の会社のコードベースでは、 という形式のクエリがたくさんありました。「何かがNULLであるか何か= ''」誰も「値なし」を記憶していないので、 –