我的"设备"表中有以下数据

affiliate_name  affiliate_location  model     ip             os_type    os_version 

cs1             inter               Dell     10.125.103.25   Linux      Fedora  
cs2             inter               Dell     10.125.103.26   Linux      Fedora  
cs3             inter               Dell     10.125.103.27   NULL       NULL    
cs4             inter               Dell     10.125.103.28   NULL       NULL    

我执行了下面的查询

SELECT CONCAT(`affiliate_name`,'-',`model`,'-',`ip`,'-',`os_type`,'-',`os_version`) AS device_name
FROM devices

它返回下面给出的结果

cs1-Dell-10.125.103.25-Linux-Fedora
cs2-Dell-10.125.103.26-Linux-Fedora
(NULL)
(NULL)

如何解决这个问题,让它忽略NULL,结果应该是

cs1-Dell-10.125.103.25-Linux-Fedora
cs2-Dell-10.125.103.26-Linux-Fedora
cs3-Dell-10.125.103.27-
cs4-Dell-10.125.103.28-

推荐答案

通过将NULL个值包装为COALESCE,将其转换为空字符串

SELECT CONCAT(COALESCE(`affiliate_name`,''),'-',COALESCE(`model`,''),'-',COALESCE(`ip`,''),'-',COALESCE(`os_type`,''),'-',COALESCE(`os_version`,'')) AS device_name
FROM devices

Mysql相关问答推荐

如何在逗号分隔字符串值中使用LEFT函数

正则表达式转换为MYSQL格式

MySQL INSERT INSERT ON DIPLICATE KEY UPDATE WITH COMPAY PRIMARY KEY失败

在 .NET 6 中使用 Dapper Framework 未能成功连接到 MySql

MySQL 关于 JSON 数组和子查询的问题

关于设置为 NOT NULL 时的 CHAR 默认值

MySQL CHECK 约束以确保记录不使用自动增量 ID 引用自身?

基于其列之一内的值查询模型

如何使用mysql更新列中的json数据

为什么order by子句可以利用索引?

如何根据 R 中的价格范围将数据从一列复制到新列?

在 where 子句中左连接多个值

为什么这个 NOT NULL 到 NULL 迁移会触发大量 I/O 操作?

INNER JOIN 问题(MySQL 错误代码:1054)

查询给出错误时的 mySQL Group_Concat 和 Case

Mysql insert with loop out of select 语句

SQL UPDATE中的str_replace?

MySQL Workbench - 如何同步 EER 图

MYSQL:创建表中的索引关键字以及何时使用它

MySQL 错误 2014 的原因在其他无缓冲查询处于活动状态时无法执行查询