0

次のデータを持つレコードがあります: id=123 ; requested_by=ジャクソン; verify_status=NULL ;

次のクエリの結果として上記のレコードが必要です。ただし、0行が返されます。

$sql="SELECT * FROM spr WHERE requested_by IS NOT NULL AND verify_status!='Accept'";

「Accept」以外の verify_status のすべてのレコードを選択したい。

verify_status!='Accept' に何か問題があるのだろうか? 助けてください。ありがとう。

4

2 に答える 2

0

に対する比較NULLはすべてfalseであるため、NULLフィールドは明示的に処理する必要があります。

または-でそれを行うことができます

where verify_status is null or verify_status != 'Accept'

または、別の値coalesceに変換するために使用できますNULL

where coalesce(verify_status, 'xxNULLxx') != 'Accept'

(このような関数を使用するcoalesceと、クエリがにあるインデックスを使用できないようになることに注意してくださいverify_status

于 2012-12-11T06:06:04.373 に答える
0

これらの行を次のように処理する必要がありますNULL verify_status

$sql="SELECT * FROM spr WHERE requested_by IS NOT NULL 
       AND (verify_status IS NULL OR verify_status != 'Accept'")
于 2012-12-11T05:58:52.793 に答える