mysql - 在表的所有行中查找具有空值的列

标签 mysql sql

我正在搜索一个 SQL 请求,该请求为我提供了一个表中从未填充过的所有列。

例如,在这样的表格中:

column 1 | column 2 | column 3 | column 4 | column 5
---------+----------+----------+----------+---------
value    | NULL     | value    | value    | NULL
NULL     | NULL     | value    | value    | NULL
value    | NULL     | value    | NULL     | NULL
value    | NULL     | value    | value    | NULL

The request will return :

column 2, column 5

EDIT :

I've created this little PHP script to generate the query and print the result :

$columns = $sql->select("SELECT column_name FROM information_schema.COLUMNS WHERE TABLE_NAME='table_name'");

$query = "SELECT ";
foreach($columns as $column) {
    $query .= "case when count(".$column[0].") = 0 then '".$column[0]."' end, ";
}
$query = substr($query, 0,-2);
$query .= " FROM table_name";

var_dump($sql->select($query));

最佳答案

类似于:

select case when count(column1) = 0 then 'column 1' end,
       case when count(column2) = 0 then 'column 2' end,
       case when count(column3) = 0 then 'column 3' end,
       case when count(column4) = 0 then 'column 4' end,
       case when count(column5) = 0 then 'column 5' end
from tablename

即计算一列的所有值,如果找到 0,则返回列名。

关于mysql - 在表的所有行中查找具有空值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28695919/

相关文章:

mysql - 如何在sql中以第三乘法顺序选择表的行,如3、6、9等

python - Flask-SQLAlchemy 查询,其中子字符串在数据库中针对整个字符串

sql - SELECT 查询造成永久损坏?

mysql - 根据 Group By 中的最大列选择行

sql - MySQL 中 COUNT 的默认值

c++ - 选择多个表 MySQL

mySQL语句获取最后一条记录

PHPMyAdmin 在外键设置上抛出错误

php - 何时以及如何通过 PHP (PDO) 使用多个 MySQL 查询

MySQL连接2个表并联合一列