【发布时间】:2011-11-05 06:45:40
【问题描述】:
我正在寻找数据迁移项目中丢失的数据,这份报告对我有很大帮助。
给定一个 MySQL 表,我想计算该表每一行中的所有空值(NULL 或 '')。输出将是列名列表以及每列的空行或非空行数。我会手动将这些数据与源表进行比较 - 手动进行比较,因为我预计很少有计数可以完全匹配,而且源表和导入表之间的列名完全不同。
我有大约 30 个表格要检查,其中一些有 100 列。我可以从我的 PC 直接访问 MySQL,但无法使用数据库在服务器上运行任何脚本。
TableA 示例
Col1 Col2 Col3
'XX' NULL 'XX'
'XX' NULL ''
'XX' 'XX' 'XX'
'XX' '' 'XX'
我想要的报告是(对于非空计数,'' 算为空):
Col1: 4
Col2: 1
Col3: 3
【问题讨论】:
-
我最后用 PHP 脚本解决了这个问题。我对每个表进行循环,然后对表中的每一列进行循环,然后对列为 NOT NULL 和非空字符串或数字的表执行 COUNT(*)。结果被放入一个 HTML 表格中,该表格可以很好地复制到电子表格中。它涉及大量查询,但有效。
-
以防万一解决方案对其他人有用,我已将其发布在这里:academe.co.uk/2011/08/mysql-finding-counts-of-data-by-columns(我将上传原始文件并在我工作后立即修复语法突出显示怎么样)。
标签: mysql data-migration counting