【问题标题】:problem in using CONCAT if the value is Null in mysql如果 mysql 中的值为 Null,则使用 CONCAT 的问题
【发布时间】:2010-08-13 15:26:45
【问题描述】:

我使用 CONCAT 来获取我的标签和主题,但如果故事没有标签或主题,则结果为空

 WHERE 

    CONCAT( ' ', table_stories.tags, ' ' )
    LIKE CONCAT( '%', table_tags.tid, '%' ) 

    AND

    CONCAT( ' ', table_stories.associated, ' ' )
    LIKE CONCAT( '%', table_topics.topicid, '%' ) 

如你所见,一切都很好,除非我们的故事没有标签或关联

我用过

  table_stories.tags IS NULL OR

但问题仍然存在,无法获取没有标签或关联的故事

我该如何解决这个问题

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我没有方便测试的 mysql,但 COALESCE() 可能是您正在寻找的功能。

    这会返回第一个非空参数(参见Documentation

    所以

    CONCAT(' ' , COALESCE(table_stories.associated, ' '), ' ')
    

    应该做的工作

    【讨论】:

    • @Mac。我没有发布完整的代码,因为我无权访问 mysql 来测试它。但是在您的 CONCAT 方法中,通过调用 COALESCE(column, ' ') 来包装任何可能为空的列。这将确保如果值为 null,您将获得一个空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2021-04-22
    • 2012-09-21
    • 1970-01-01
    相关资源
    最近更新 更多