MySQL CONCAT 函数检查非空。

14
SELECT Concat(mp.cHospital ,',',mp.cHospital1,',',mp.cHospital2) as Hospital FROM TBL

我不想返回空值,

如何检查非空或在查询中使用isset条件

3个回答

29

根据定义(几乎),任何与NULL的操作都会导致其结果为NULL,因为NULL意味着“未定义”。 我理解你的问题是cHospital、cHospital1或cHospital3可能为空,你想要进行检查。问题是:应该发生什么? 你想要只替换字段为空字符串,然后进行连接或替换所有字段?

我假设你想要的是第一种情况,可能看起来像这样:

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


请查看屏幕截图:![alt text][1] - Bharanikumar
我尝试了上述的“如果为空”条件,但它仍然抛出了空值答案。 - Bharanikumar

16

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接