MySQL查询用空字符串替换NULL
如何用空字符串替换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,当然没有解决问题,还尝试交换when case的位置,该方法不起作用。
编辑:似乎下面给出的3个解决方案都可以完成任务。 问候
select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test
asked 2019-11-04T09:03:17Z
10个解决方案
103 votes
如果确实必须输出所有值,包括NULL值:
select IFNULL(prereq,"") from test
JScoobyCed answered 2019-11-04T09:03:32Z
74 votes
SELECT COALESCE(prereq, '') FROM test
合并将返回从左到右传递给它的第一个非空参数。 如果所有的争论都为空,它将返回空,但是我们在此处强制使用空字符串,因此不会返回任何空值。
另请注意,标准SQL支持COALESCE运算符。 IFNULL不是这种情况。 因此,使用前者是一个好习惯。 另外,请记住,COALESCE支持两个以上的参数,它将在它们上进行迭代,直到找到一个非空的巧合。
Mosty Mostacho answered 2019-11-04T09:04:03Z
14 votes
尝试下面;
select if(prereq IS NULL ," ",prereq ) from test
answered 2019-11-04T09:04:27Z
4 votes
其中一些内置函数应该起作用:
Coalesce
Is Null
IfNull
Tamil Selvan C answered 2019-11-04T09:04:50Z
3 votes
原始形式几乎完美,您只需要在CASE之后省略prereq:
SELECT
CASE
WHEN prereq IS NULL THEN ' '
ELSE prereq
END AS prereq
FROM test;
M.Nemes answered 2019-11-04T09:05:13Z
2 votes
尝试COALESCE。它返回第一个非NULL值。
SELECT COALESCE(`prereq`, ' ') FROM `test`
SenorAmor answered 2019-11-04T09:05:36Z
1 votes
select IFNULL(`prereq`,'') as ColumnName FROM test
该查询选择“ prereq”值,如果其中任何一个为null,则显示一个空字符串因此,它显示所有值,但NULL值显示为空白
Abderrahmane answered 2019-11-04T09:06:00Z
0 votes
试试这个,这也应该摆脱那些空行:
SELECT prereq FROM test WHERE prereq IS NOT NULL;
Hunter McMillen answered 2019-11-04T09:06:24Z
-1 votes
我在数据库的非必填字段中有null(默认值为NULL)。 它们不会使值“ null”显示在网页中。 但是,通过网页输入表单创建数据时,将放置“ null”值。 这是由于JavaScript在通过AJAX和jQuery提交数据时采用null并将其转录为字符串“ null”。 确保这不是基本问题,因为简单地执行上述操作只是解决实际问题的临时措施。 我还实现了上述解决方案IFNULL(...)作为双重措施。 谢谢。
Daniel answered 2019-11-04T09:06:49Z
-1 votes
UPDATE your_table set your_field="" where your_field is null
Abderrahmane answered 2019-11-04T09:07:06Z