【问题标题】:MYSQL: Stop IFNULL returning "empty" rows of nullMYSQL:停止 IFNULL 返回 null 的“空”行
【发布时间】:2021-01-04 06:49:30
【问题描述】:

我通过以下方式使用 IFNULL:

SELECT name, address, birthday, IFNULL(GROUP_CONCAT(pet_name), 'none') AS `pets_names` FROM pets WHERE user_id = 1;

但是,如果我没有用户 1,因此没有结果,我将得到一个单行,其中所有字段都为空,除了 pet_names 会显示“无”。我尝试将其设置为仅在 user_id IS NOT NULL 时才给出一个值,但随后我得到了一行,每个值都为 NULL。使用 IFNULL 时如何让它不返回任何行?

【问题讨论】:

  • 如果我没有用户 1,因此没有结果,我将得到一个单行,其中所有字段都为空,除了 pet_names 会显示“无”。 不可能。您必须收到空集,根本没有行。如果您看到一行包含空值和“无”,那么这就是您的客户端“服务”。
  • 这是我在 Sequel Pro 以及通过服务获得的结果
  • 通过 CLI 尝试相同的操作。

标签: mysql ifnull


【解决方案1】:

我已经通过添加解决了这个问题

GROUP BY name

我猜是因为没有名字,没有任何分组依据,因此没有结果。

【讨论】:

    猜你喜欢
    • 2019-09-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多