Kullanmalısınız IS NOT NULL
. (Karşılaştırma operatörleri =
ve <>
hem vermek UNKNOWN
ile NULL
ifade her iki tarafında).
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
Tam olarak söylemek gerekirse, MySQL'de null güvenli eşitlik operatörünü de reddedebileceğinizi söyleyeceğim, ancak bu standart SQL değil.
SELECT *
FROM table
WHERE NOT (YourColumn <=> NULL);
Yorumları yansıtacak şekilde düzenlendi. Tablonuz ilk normal formda olmayabilir, bu durumda yapıyı değiştirmek görevinizi kolaylaştırabilir. Yine de bunu yapmanın birkaç yolu ...
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ıdakilerin dezavantajı, tabloyu her sütun için bir defadan fazla taramasıdır. Bu muhtemelen aşağıdaki tarafından önlenebilir ama MySQL bunu 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*/