我有一个由96列组成的表。根据第一列的值,只有少数列有值。
比方说第一列ID对于:Id 111752,只有列编号9-17有一些值。
当我必须处理项目111752时,我如何过滤空值?
SQL不支持有条件地选择列。如果您一直使用这个数据库模式,那么您唯一的选择就是SELECT *
,然后在客户端(PHP?)过滤结果列。
然而,我认为这里真正的问题在于你的模式。如果你有一个有96列的表,其中大多数(或其中的大组)通常为NULL,那么你的数据库模式就有问题了,也就是说,你将数据分组到表中的方式有问题。
阅读数据库规范化,并思考如何重新设计数据库。
- 维基百科上的数据库规范化
- 数据库规范化基础知识
- 数据库规范化简介