mysql - 找不到 last_name 值时查询不返回任何内容

标签 mysql sql concatenation ifnull

我刚刚构建了这个新的条件查询,用于根据 display_as 提取 first_name AND last_namecompany_name > 值(value):

Select If(`display_as` = 'individual',
    CONCAT(first_name, ' ', last_name)
   ,`company_name`) as name FROM `{$this->table}` WHERE `unique_id` = ? LIMIT 1

问题是,如果用户只有 first_name 值,而 last_name 没有,则根本不会返回任何内容。

我该如何解决这个问题?

最佳答案

改用这个查询。

$sql = "Select If(`display_as` = 'individual',
    CONCAT(IFNULL(first_name, ''), ' ', IFNULL(last_name, ''))
   ,`company_name`) as name FROM `{$this->table}` WHERE `unique_id` = ? LIMIT 1";

关于mysql - 找不到 last_name 值时查询不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57406122/

相关文章:

php - 使用 php 优化 SQL 查询

mysql - IF ELSE里面加载数据infile mysql

具有大量帖子的 Mysql 用户源

php - 我应该使用纯 PHP/MySQL 来开发 Web 应用程序吗?

mysql - 查询中的两个分组,其中一个没有聚合函数。

php - 如何获取不同表中两个字段的总和?

python - 为什么使用索引匹配列将 Series 连接到 DataFrame 不起作用?

arrays - 如何在 Ruby 中有效地连接多个数组?

sql - 在没有 OR 条件的情况下高效加入配置单元

javascript - 正则表达式组 javascript 上的算术运算