3

こんにちは私はSQLクエリでのNULL条件チェックに関する問題に直面しています。

次の画像は、NULL値の列「sync」を持つテーブルsession_testsetの行を選択するためのものです。

NULL値の行が1つありますが、0レコードを返しています。

行を返さない

そして、条件を変えて「NOTNULL」をチェックすると。記録を返しています。

戻り行

しかし、それは間違っています。なぜそれが起こっているのですか?

そしてこれが私のテーブル構造です
ここに画像の説明を入力してください

4

3 に答える 3

2

私の知る限り、のようなクエリを使用すると、SELECT * FROM table_name WHERE column_name IS NULL値がない列が返されます。これは、埋められていないことを意味します。テーブルにNULL値があります。列にNULL値を配置せずにコードを確認してください。

于 2013-01-02T04:36:46.337 に答える
2

アナズはあなたが必要としているものを正確に与えてくれたと思います。
列に値がないことは、
ISNULLおよびISNOTNULLを使用しようとしているときに値'NULL'が含まれていることと同じではありません。

サンプルDBでテストクエリを試しましたが、これらのクエリは問題なく機能します。

1. SELECT * FROM sample_db WHERE name IS NULL;  //returns row where name  
column has no value
2. SELECT * FROM sample_db WHERE name IS NOT NULL;  //returns row where name  
column has values    
于 2013-01-02T04:39:53.530 に答える
0
select * from session_testset where  sync is null or sync = '';

また

select * from session_testset where ifnull(sync , '') = '';

また

select * from session_testset where coalesce(sync , '') = '';

また

select * from session_testset where ifnull(length(sync ), 0) = 0;
于 2013-01-02T04:44:43.400 に答える