我是否可以显示所有值为空的列名?

id name surname
1 Jack NULL
2 NULL Grain
3 NULL NULL

我希望我的结果是这样的:

id nullFields
1 name
2 surname
3 name, surname

完美的解决方案是一些sql,它会获取所有列并判断它们(如果不需要手动输入列名),但如果没有这种可能性,"普通解决方案"就可以了.

推荐答案

我们可以在这里使用基本字符串函数:

SELECT id, CONCAT_WS(', ',
                     CASE WHEN name IS NULL THEN 'name' END,
                     CASE WHEN surname IS NULL THEN 'surname' END) AS nullFields
FROM yourTable
ORDER BY id;

Mysql相关问答推荐

左联接重复问题

MySQL连接序列

MySQL嵌套的内连接使查询变得很慢-解决方案?

根据 Power Query 中的条件替换值

拆分列值并适当地返回拆分值

Next-key lock explication - 范围的主键

如何使用 express.js 和 react.js 删除连接表中的元素和关联元素

MySql部分匹配基于部分查询代码

在 SQL 中 for each 组返回具有最大值的行,包括具有相同值的行

MySQL中的会话客户端是什么

如何在每个国家/地区查询 GHTorrent(类 SQL 语言)的最常用语言

如何通过 mysql workbench 将数据导入 mysql 数据库?

MySQL触发器在某些条件下防止INSERT

PDO:MySQL 服务器已消失

mysql中float(2,2)和float()的区别

用户 'User'@'%' 和 'User'@'localhost' 不一样吗?

MySQL 导出到 outfile:CSV 转义字符

Mysql中int(10)的最大大小是多少

#1030 - 从存储引擎 Aria 收到错误 176读取错误校验和的页面

Yii2 如何进行 where AND 或 OR 条件分组?