mysql数据库:
比如有个table:sr_problem_process,
这个表中有两百个字段,
有些字段没有用到(即这个字段的所有值都是null),
查询出所有这样的字段,
用sql或存储过程实现,
求大神帮写下,跪谢
比如有个table:sr_problem_process,
这个表中有两百个字段,
有些字段没有用到(即这个字段的所有值都是null),
查询出所有这样的字段,
用sql或存储过程实现,
求大神帮写下,跪谢
解决方案 »
- master->slave1->slave2的复制如何恢复同步?
- 查找出错。都一个星期了。晕死了#2006 - MySQL server has gone away根本解决不了
- mysql 连接数为0的问题
- Mysql Update有办法返回影响的记录集吗?
- 新手请教:sql 中count()的问题?
- 我的mysql的中文乱码的解决步骤
- linux系统下安装mysql为什么出现冲突,请教高手怎么解决?
- mysql的表里有没有一个相当于foxpro中记录号的东西?
- 请问:shuixin13(犬犬(心帆)) 我要访问局域网内另一台机器的Mysql怎么配置呢。
- 【mysql】客户机navicat for mysql 连接服务器mysql报错 10038
- Mysql5.7 断网后无法重连
- 两表合并sql求助。
DROP PROCEDURE
IF EXISTS find_null_col;CREATE PROCEDURE find_null_col (
IN tableName VARCHAR (20),
IN dbName VARCHAR (20),
OUT result VARCHAR (200)
) -- 创建存储过程 命名为tests
BEGINDECLARE col_name VARCHAR (50);
DECLARE no_more_record TINYINT DEFAULT 0;
DECLARE rs_cursor CURSOR FOR SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
table_name =@tableName
AND table_schema =@dbName;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET no_more_record = 1;OPEN rs_cursor;
SET @tableName = CONCAT(tableName);
SET @dbName = CONCAT(dbName);
REPEAT
FETCH rs_cursor INTO col_name;
IF NOT no_more_record THENSET @sqlStr = CONCAT(
'select 1 from ',
@tableName,
' where ',
col_name,
' is not null limit 1'
);PREPARE stmt
FROM
@sqlStr;-- 预定义一个语句,并将它赋给 stmt
EXECUTE stmt;
IF FOUND_ROWS() = 0 THEN
SELECT
CONCAT_WS(',', result, col_name) INTO result;
END
IF;-- 执行语句
DEALLOCATE PREPARE stmt;-- 要释放一个预定义语句的资源
END
IF;UNTIL no_more_record
END
REPEAT
;CLOSE rs_cursor;
END;CALL find_null_col('sr_problem_process', 'db_problem', @test);
SELECT @test;