MySQLテーブルには、status
= NULLの行と、status
=0の行があります。
クエリでそれらを選択する場合:
SELECT *
FROM `table`
WHERE `status` != 0
0
これはとの両方の値を無視しNULL
ます。
値のみを無視するにはどうすれば0
よいですか?
MySQLテーブルには、status
= NULLの行と、status
=0の行があります。
クエリでそれらを選択する場合:
SELECT *
FROM `table`
WHERE `status` != 0
0
これはとの両方の値を無視しNULL
ます。
値のみを無視するにはどうすれば0
よいですか?
is null
次の述語を使用できます。
status
数値フィールドの場合:
SELECT *
FROM `table`
WHERE `status` != 0
OR `status` IS NULL
status
テキストフィールドの場合:
SELECT *
FROM `table`
WHERE `status` != '0'
OR `status` IS NULL
これは、 がとして評価され、 が として評価さNULL != 0
れるため機能します。包含条件が と評価される行は拒否されます。NULL
NULL OR TRUE
TRUE
NULL
あなたのsqlfiddleから判断すると、それstatus
はテキスト型であるように見えるので、これがあなたが望むものです:
SELECT *
FROM mytable
WHERE status IS NULL
OR status != '0'
試してないけどこれかな?
SELECT *
FROM `table`
WHERE `status` IS NULL OR `status` != 0
両方を除外する場合:
SELECT *
FROM mytable
WHERE COALESCE(status,0) <> 0
;
null セーフの equals 演算子を使用できます...
SELECT status
FROM mytable
WHERE not (status <=> 0);
null
単なる別の値 と見なします。通常の比較で得られる と0 <=> null
は対照的に、 falseです。null
ここでの他の回答と同様に、status
列がたまたま (var)char 型である場合は 0 を引用してください。