你应该使用IS NOT NULL。 (比较运算符=和都在表达式的任一侧给出UNKNOWN为NULL。)
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
为了完整性,我会提到,在MySQL中,你也可以否定null safe equality operator,但这不是标准的SQL。
SELECT *
FROM table
WHERE NOT (YourColumn <=> NULL);
已编辑以反映评论。听起来你的表可能不是第一正常形式,在这种情况下更改结构可能会使您的任务更容易。几个其他的方式做它虽然…
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*/
上述的缺点是它为每一列扫描表多次一次。这可能可以通过下面但是我没有在MySQL中测试这个。
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*/
最后
以上就是冷酷短靴最近收集整理的关于mysql select不为空_MySQL SELECT只能不为空值的全部内容,更多相关mysql内容请搜索靠谱客的其他文章。
发表评论 取消回复