sql – MySQL SELECT只是非空值
是否可以执行只接受NOT NULL值的select语句?
现在我正在使用这个:
SELECT * FROM table
然后我必须用php循环过滤掉空值。
有办法吗?
SELECT * (that are NOT NULL) FROM table
?
现在,当我选择*我得到val1,val2,val3,null,val4,val5,null,null等….但我只是想得到我的结果中不为null的值。 这可能没有过滤循环吗?
8个解决方案
393 votes
您应该使用IS NOT NULL.(比较运算符=和<>都在表达式的任一侧给出UNKNOWN和NULL。)
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
为了完整起见,我会提到在MySQL中你也可以否定null安全等式运算符,但这不是标准的SQL。
SELECT *
FROM table
WHERE NOT (YourColumn <=> NULL);
编辑以反映评论。 听起来您的桌子可能不是第一种正常形式,在这种情况下,更改结构可能会使您的任务更容易。 其他几种做法虽然……
SELECT val1 AS val
FROM your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2