【发布时间】:2019-04-23 16:00:07
【问题描述】:
我想从 MySQL 表中获取没有值的列数,表示为空白或零。
其实,我想衡量一下他填写了多少字段,还剩下多少的员工档案?
我正在使用 MySQL 和 PHP。
【问题讨论】:
标签: php mysql sql codeigniter select
我想从 MySQL 表中获取没有值的列数,表示为空白或零。
其实,我想衡量一下他填写了多少字段,还剩下多少的员工档案?
我正在使用 MySQL 和 PHP。
【问题讨论】:
标签: php mysql sql codeigniter select
DECLARE @Str VARCHAR(max) = (
SELECT stuff((
SELECT 'and ' + c.NAME + ' is null '
FROM sys.columns c
WHERE object_name(object_id) = 'yourtablename'
ORDER BY c.NAME
FOR XML PATH('')
), 1, 3, '')
)
SET @Str = 'select * from ' + yourtablename + ' where ' + @Str
PRINT @Str
EXEC (@Str)
【讨论】:
给定一个具有此架构Employee(id, fname, lname, dob)的表
如果您想查找具有NULL 或空fname 的Employee 行数,那么您可以执行以下操作...
SELECT COUNT(fname) AS 'number of empty fnames'
FROM `Employee`
WHERE `fname` IS NULL
OR `fname` = '';
当然,您可以扩展它以查找任何 NULL 或空字段/列。
【讨论】:
除了手动对每一列求和之外,我看不到任何其他方法。这是一种比较简洁的方法:
SELECT
empId,
IF(COALESCE(col1, '') = '', 1, 0) +
IF(COALESCE(col2, '') = '', 1, 0) +
...
IF(COALESCE(colN, '') = '', 1, 0) AS num_cols_missing
FROM yourTable;
我们可以用空字符串替换NULL 列值,然后将该结果与空字符串进行比较。这意味着我们可以使用一个逻辑表达式同时检查 NULL 和空。
【讨论】: