【问题标题】:MySQL - Concat only when not emptyMySQL - 仅在不为空时连接
【发布时间】:2022-01-18 04:51:27
【问题描述】:

当我从数据库返回图像时,我试图添加指向我的图像的链接,但我不想在图像为空时添加它。我尝试了CONCATCONCAT_WS,但没有成功

这两个都不起作用:

SELECT id, name_en as name, CONCAT_WS("http://website.com/", image) as image FROM businesses

SELECT id, name_en as name, CONCAT("http://website.com/", image) as image FROM businesses

【问题讨论】:

标签: mysql database concatenation


【解决方案1】:

你可以使用ÌFflowcoltrol,`判断图片是否为NULL,如果不是则添加url

SELECT id, name_en as name, IF(image IS NOT NULL, CONCAT("http://website.com/", image),"") as image 
FROM businesses

【讨论】:

  • 这就像一个魅力。我可以添加另一个查询来支持空字符串而不仅仅是空字符串吗?。
  • 使用image IS NOT NULL OR image <> ''
  • 非常感谢。我刚刚检查了你的账户,你看起来在这方面做得很好。你能推荐我一本关于数据库的书吗?我觉得它很有趣,很想了解更多。提前致谢。
  • 先看看这里的链接stackoverflow.com/tags/mysql/info 有视频教程和初学者 w3school 和其他很多s和很多,但是看看这个标签或 sql 标签并阅读所问的内容和答案,他们还提供了很好的解释和流行语来查找手册也是一个很好的起点
【解决方案2】:

您正在寻找的是 COALESCE() 函数:下面的文档链接。它返回系列中的第一个非空值。所以本质上我们将 Null 替换为一个空字符串。

SELECT id, name_en as name, CONCAT("http://website.com/", coalesce(image,'')) as image 
FROM businesses

https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#function_coalesce

【讨论】:

    猜你喜欢
    • 2014-04-29
    • 2021-06-21
    • 2019-07-16
    • 1970-01-01
    • 2018-09-08
    • 2014-05-31
    • 2021-10-17
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多