您应该使用
IS NOT NULL。(比较操作符
=和
<>两个给定
UNKNOWN与
NULL上表达的任一侧)。
SELECt * FROM table WHERe YourColumn IS NOT NULL;
为了完整起见,我将提到在MySQL中您还可以否定空安全相等运算符,但这不是标准的SQL。
SELECt *FROM table WHERe NOT (YourColumn <=> NULL);
编辑以反映评论。听起来您的表格可能未采用第一范式,在这种情况下,更改结构可能会使您的任务更容易。不过,还有其他几种方法可以…
SELECt val1 AS valFROM your_tableWHERe val1 IS NOT NULLUNIOn ALLSELECt val2 FROM your_tableWHERe val2 IS NOT NULL
上面的缺点是,它为每列多次扫描表一次。下面可能会避免这种情况,但是我还没有在MySQL中测试过。
SELECt CASE idx WHEN 1 THEN val1 WHEN 2 THEN val2 END AS valFROM your_table JOIN (SELECT 1 AS idx UNIOn ALL SELECT 2) tHAVINg val IS NOT NULL



