查询 mysql中 所有的 非空记录字段

mysql 查询 所有的 非空记录字段

sql 复制代码
CREATE DEFINER=`root`@`%` PROCEDURE `find_actual_non_null_columns`(IN db_name VARCHAR(255))
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE tab_name VARCHAR(255);
    DECLARE col_name VARCHAR(255);
    DECLARE cur CURSOR FOR 
        SELECT TABLE_NAME, COLUMN_NAME
        FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_SCHEMA = db_name;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    DROP TEMPORARY TABLE IF EXISTS temp_non_null_columns;
    CREATE TEMPORARY TABLE temp_non_null_columns (
        table_name VARCHAR(255),
        column_name VARCHAR(255)
    );

    OPEN cur;

    read_loop: LOOP
        FETCH cur INTO tab_name, col_name;
        IF done THEN
            LEAVE read_loop;
        END IF;

        -- 检查该字段是否有非空记录(非全是null)
        SET @query = CONCAT(
            'SELECT COUNT(*) INTO @non_null_count FROM `', db_name, '`.`', tab_name, '` WHERE `', col_name, '` IS NOT NULL AND `', col_name, '` != '''''
        );

        PREPARE stmt FROM @query;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;

        -- 如果有非空记录,说明该字段非全是null
        IF @non_null_count > 0 THEN
            INSERT INTO temp_non_null_columns VALUES (tab_name, col_name);
        END IF;
    END LOOP;

    CLOSE cur;

    SELECT 
        table_name AS table_name,
        column_name AS column_name
    FROM temp_non_null_columns
    ORDER BY table_name, column_name;

END

调用

sql 复制代码
CALL find_actual_non_null_columns('schy');
相关推荐
马克学长2 分钟前
SSM校外实习管理平台6tu82(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·计算机毕设·ssm框架·实习管理信息化·校企协同实习
山峰哥2 分钟前
数据库性能优化实战:从工程架构到SQL调优的深度解析
大数据·数据库·oracle·性能优化·架构·深度优先
苹果醋313 分钟前
java设计模式之责任链模式
java·运维·spring boot·mysql·nginx
soft200152515 分钟前
MySQL Buffer Pool性能优化:LRU链表极致设计之道
数据库·mysql·链表
爱技术的阿呆19 分钟前
MySQL表约束与表关系
mysql
我可以将你更新哟22 分钟前
【scrapy框架】爬取内容后写入数据库
数据库·windows·scrapy
骄傲的心别枯萎24 分钟前
RV1126 NO.58:ROCKX+RV1126人脸识别推流项目之读取人脸数据库并保存到map
linux·数据库·计算机视觉·音视频·rv1126
枫叶丹425 分钟前
【Qt开发】Qt事件(一)
c语言·开发语言·数据库·c++·qt·microsoft
AIOps打工人28 分钟前
Grafana Query MCP:基于FastAPI的Grafana查询转换与分页服务
运维·数据库·python·ai·grafana·fastapi·devops
小鸡吃米…31 分钟前
Python - 数据库访问
数据库·python