1

電子メールを持たないユーザーレコードを選択しようとすると、クエリで適切な結果が得られません。

select * from users where email=''

と:

select * from users where email=NULL

どちらも異なる結果をもたらしますが、どちらも正しい結果をもたらしません。どうすれば正しい結果を得ることができますか?

4

3 に答える 3

4

ISNULLまたはISNOTNULLです。

select * from users where email IS NULL

ユーザーが「電子メールなし」にする方法に応じて、フィールドのデフォルト値をNULLに設定し、フィールドをNULL可能にする必要があります。次に、そのテーブルの新しいレコードの挿入が実行されると、電子メールは空ではなくNULLになります。

または、すでに不一致のテーブルで立ち往生している場合は、次のようなことを試してください。

select * from users where LENGTH(COALESCE(email,'')) = 0

emailこれにより、NULLを空として扱い、の「空」の値を持つすべてのレコードが得られます。

于 2012-04-06T17:05:42.630 に答える
1

nullはnullと等しくありません。

指定する必要がありますIS NULL

于 2012-04-06T17:07:34.677 に答える
0

Mysqlはそれらの両方を異なる方法で扱います

email=''空白の値をemail=NULLチェックし、null値をチェックするため、両方で異なる結果が得られます。

is NULL空白値とnull値の両方をチェックするために使用する必要があります。

SELECT *  FROM users WHERE email IS NULL
于 2012-04-06T17:07:30.290 に答える