如何用空字符串替换select中的NULL值? 输出“NULL”值看起来不太专业。
这是非常不寻常的,根据我的语法,我希望它可以工作。 希望得到解释为什么它没有。
select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;
原始表格的样子,我想要的内容以及实际打印内容的示例:
original wanted what actually prints
-------- ------ ---------------------
value1 value1
NULL NULL
value2 value2
NULL NULL
你可以看到它与我想要的相反,因此我尝试将IS NULL翻转为IS NOT NULL,当然没有修复它,也尝试交换当案例的位置,这不起作用。< / p>
编辑: 看来下面给出的3个解决方案都可以完成任务。问候
select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test
答案 0 :(得分:99)
如果你真的必须输出包括NULL值的每个值:
select IFNULL(prereq,"") from test
答案 1 :(得分:72)
SELECT COALESCE(prereq, '') FROM test
Coalesce将返回从左到右传递给它的第一个非null参数。如果所有arguemnts都为null,它将返回null,但我们在那里强制一个空字符串,因此不会返回空值。
另请注意,标准SQL支持COALESCE运算符。这不是IFNULL的情况。因此,使用前者是一个好习惯。另外,请记住,COALESCE支持2个以上的参数,它将迭代它们,直到找到非空的重合。
答案 2 :(得分:13)
尝试以下;
select if(prereq IS NULL ," ",prereq ) from test
答案 3 :(得分:4)
其中一些内置函数应该可以工作:
Coalesce
Is Null
IfNull
答案 4 :(得分:3)
原始表单几乎是完美的,您只需在 CASE 之后省略 prereq :
SELECT
CASE
WHEN prereq IS NULL THEN ' '
ELSE prereq
END AS prereq
FROM test;
答案 5 :(得分:2)
试试COALESCE
。它返回第一个非NULL值。
SELECT COALESCE(`prereq`, ' ') FROM `test`
答案 6 :(得分:0)
试试这个,这也应该摆脱那些空行:
SELECT prereq FROM test WHERE prereq IS NOT NULL;
答案 7 :(得分:0)
select IFNULL(`prereq`,'') as ColumnName FROM test
此查询选择的是“ prereq”值,如果其中任何一个为null,则根据需要显示一个空字符串 因此,它显示所有值,但NULL值显示为空白
答案 8 :(得分:-1)
我在数据库的非必需字段中有null(默认值为NULL)。它们不会使值“ null”显示在网页中。但是,在通过网页输入表单创建数据时,将放置“ null”值。这是由于JavaScript在通过AJAX和jQuery提交数据时采用null并将其转录为字符串“ null”。确保这不是基本问题,因为简单地执行上述操作只是解决实际问题的临时措施。我还实现了上述解决方案IFNULL(...)作为双重措施。谢谢。
答案 9 :(得分:-1)
UPDATE your_table set your_field="" where your_field is null
答案 10 :(得分:-1)
我知道这是一个老问题,但是我得到了没有更改查询的最佳解决方案,并且还支持SELECT *语句
foreach ($row as &$value) {
if($value==null){
$value="";
}
}