2017-10-30 7 views
-2

「無効」私はwhere句でこの文を持つクエリがあります:私は、この値を持っているデータベースでMySQLの - 値を持つ行を選択しない

AND (s1_.sync_id IS NULL OR s1_.sync_id = 0) 

sync_id 
NULL  --> NULL 
invalid --> String 'invalid' 

をクエリでは、文字列が「無効」の行も選択されます。理由は分かりません。なぜなら、それはNULLでもでもないからです。

NULLまたは0の行を選択したいのですが、これらの2つの値と異なる値の行を選択したくありません。

ここで何が起こっているのか分かりませんか?

ありがとうございました。クエリに必要な

+0

@ Harshil NULLまたは0の行を選択したいのですが、これらの2つの値と異なる値の行を選択したくありません。 – Torben

+0

'AND(s1_.sync_idはNULLまたはs1_.sync_id = '0')' coz sync_idは整数値と比較してはなりません。これを試してください: 'AND(s1_.sync_id <> 'invalid')' –

+1

s1_.sync_id = '0' - 私は行こうとします – Torben

答えて

1

小さなアップデート:

AND (s1_.sync_id IS NULL OR s1_.sync_id = '0') 

あなたが''sync_idとして保存する文字列ではない整数で0をカバーする必要があります。

関連する問題