SELECT Concat(mp.cHospital ,',',mp.cHospital1,',',mp.cHospital2) as Hospital FROM TBL
我不想返回空值,
如何检查非null或如何在查询中设置isset cond
答案 0 :(得分:25)
根据定义(几乎)任何具有NULL的操作都将导致NULL,因为NULL表示“未定义”。我解释你要检查的cHospital或cHospital1或cHospital3可能为NULL的问题。问题是:应该怎么办?你想要用空的搅拌器取代现场,然后是concat或者全部吗?
我假设第一个。可能看起来像这样:
SELECT Concat(
IFNULL(mp.cHospital, ''),
',',
IFNULL(mp.cHospital1,''),
',',
IFNULL(mp.cHospital2,'')) AS Hospital
FROM TBL
IFNULL返回第一部分,除非它返回第二部分的NULL(这里是空字符串)。
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_ifnull
答案 1 :(得分:11)
我建议使用CONCAT_WS功能。这可以根据您的需要进行操作。 会像
SELECT CONCAT_WS(',', mp.cHospital, mp.cHospital1, mp.cHospital2) as Hospital FROM TB
L
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws
问候!!
答案 2 :(得分:2)
COALESCE(val1, val2, val3, ...)
将返回第一个not null值,例如
COALESCE(@val, '')
如果@val
为空,将返回空字符串。
答案 3 :(得分:0)