2013-05-06 20 views
10

Yalnızca belirli bir alanın boş olmadığı satırları gösterecek şekilde sorgularımı sınırlamak istiyorum. Birinin aynı soruyu sorduğu ve IS NOT NULL kullanması söylendiği this thread'u buldum. Bunu denedim, ama hala alanın boş olduğu yerlere gidiyorum.SQL/MySQL DEĞİL NULL vs NOT

Bunu yapmanın doğru yolu nedir? Null, SQL/MySQL'de Boş ile aynı şey mi? Eğer ilgileniyorsanız

Benim sorgu şöyledir: SELECT * FROM records WHERE (party_zip='49080' OR party_zip='49078' OR party_zip='49284') AND partyfn IS NOT NULL

+0

!COALESCE(party_zip, 0) kullanmak o hassas bilgiler içerdiğinden olarak –

+0

Maalesef benim tablolardan gerçek veri göndermek olamaz. Test etmek isterseniz, sadece birkaç satırı kolayca yazabilirsiniz. – cream

+3

Bu soruya bir bakın: http://stackoverflow.com/questions/1869264/mysql-select-where-column-not-empty – joakaune

cevap

7

kullanarak aldım, çoğu durumda sonuç NULL olur ve bunun aynı sonucu olarak haves 0 (MySQL'deki FALSE değeri) içinde WHERE ve HAVING.

Verilen örnekte, IS NOT NULL'u eklemeniz gerekmez. Bunun yerine sadece party_zip IN ('49080', '49078', '49284') kullanın. NULL, 49080, 49078, 49284 veya başka bir sayı veya dize olamaz.

Bununla birlikte, üzerinde düşünmeniz gereken şey boş değerlerin kontrol edilmesidir. !party_zip, NULL değeri TRUE/1 döndürmez. Bunun yerine bazı örnek verileri gönderebilir OR columns IS NULL veya

22

Ben NULL değeri karşılaştırıldığında AND (partyfn IS NOT NULL AND partyfn != '')

İlgili konular