mysql concat检查不为null

时间:2010-02-13 18:42:01

标签: mysql

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

我不想返回空值,

如何检查非null或如何在查询中设置isset cond

4 个答案:

答案 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)