【发布时间】:2019-12-15 18:47:10
【问题描述】:
我刚刚构建了这个新的条件查询,用于根据 display_as 值提取 first_name AND last_name 或 company_name:
Select If(`display_as` = 'individual',
CONCAT(first_name, ' ', last_name)
,`company_name`) as name FROM `{$this->table}` WHERE `unique_id` = ? LIMIT 1
问题是,如果用户只有一个first_name 值,而no value 是last_name,则根本不会返回任何内容。
我该如何解决这个问题?
【问题讨论】:
-
发生这种情况是因为任何涉及 NULL 和 NOT NULL 值的操作都会导致 NULL,但 IFNULL 和 COALESCE 除外,它们用于通过在 NULL 的情况下提供默认值来解决问题。给出的答案是函数用法的典型示例。