我的数据库中有一个包含 46 列的表,在这 46 列中,25 或 26 大部分是空的。当我通过某种条件选择所有列时,我只希望那些列将选择其中包含一些数据的列
user2660030
问问题
403 次
1 回答
0
您可以尝试使用此查询向您显示非空列的名称:
SET group_concat_max_len = 4294967295;
SELECT GROUP_CONCAT(CONCAT(
' SELECT ',QUOTE(COLUMN_NAME),
' FROM table_name',
' WHERE `',REPLACE(COLUMN_NAME, '`', '``'),'` IS NOT NULL',
' HAVING COUNT(*)'
) SEPARATOR ' UNION ALL ')
INTO @sql
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'table_name';
PREPARE stmt FROM @sql;
EXECUTE stmt;
然后只需手动执行这些列:
SELECT column_name3, column_name8 FROM Table_Name;
于 2013-09-09T05:48:14.330 回答