SORU
12 Mart 2011, CUMARTESİ


MySQL sadece not null değerleri SEÇİN

Sadece not NULL değerleri alır bir deyim yapmak mümkün.

Şimdi bu kullanıyorum:

SELECT * FROM table

Ve sonra bir php döngü ile null değerleri filtrelemek için var

orada bir şekilde yapmak

SELECT * (that are NOT NULL) FROM table?

Val1,val2,val3,null,val4,val5,null vb boş olsun * seçtiğimde şu an.... ama ben sadece benim sonuç null olmayan değerleri almak istiyorum. Olası bir döngü ile filtreleme olmadan bu?

Şimdi bir süre için arama oldum, cant çözün

CEVAP
12 Mart 2011, CUMARTESİ


IS NOT NULL kullanmalısınız. (Karşılaştırma = <> her iki ifadenin her iki tarafta NULL 11 *ver operatörleri.)

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;

Sadece bütünlüğü için MySQL de null safe equality operator inkar söz edeceğim ama bu standart SQL değil.

SELECT *
FROM table 
WHERE NOT (YourColumn <=> NULL);

Düzenlenmiş yorumlara yansıtmak için. Masanız bu durumda yapısını değiştirmek Senin görevin daha kolay hale getirebilir ilk normal formda olmayabilir gibi geliyor. Ama bunu yapmanın başka yolları da birkaç...

SELECT val1 AS val
FROM  your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2 
FROM  your_table
WHERE val2 IS NOT NULL
/*And so on for all your columns*/

Yukarıdaki dezavantajı tablo birden çok kez, bir kez her sütun için tarar. Bu muhtemelen tarafından aşağıda kalmayabilir ama MySQL bu test etmedim.

SELECT CASE idx
         WHEN 1 THEN val1
         WHEN 2 THEN val2
       END AS val
FROM   your_table
        /*CROSS JOIN*/
       JOIN (SELECT 1 AS idx
                   UNION ALL
                   SELECT 2) t
HAVING val IS NOT NULL  /*Can reference alias in Having in MySQL*/

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MVLV28

    MVLV28

    17 Mart 2008
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009