查询 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 小时前
Milvus:Json字段详解(十)
数据库·人工智能·python·ai·milvus·向量数据库·rag
ManageEngineITSM5 小时前
技术的秩序:IT资产与配置管理的现代重构
大数据·运维·数据库·重构·工单系统
档案宝档案管理8 小时前
档案宝:企业合同档案管理的“安全保险箱”与“效率加速器”
大数据·数据库·人工智能·安全·档案·档案管理
wangjialelele8 小时前
mysql库操作二
数据库·mysql
星释8 小时前
二级等保实战:MySQL安全加固
android·mysql·安全
Chloeis Syntax8 小时前
MySQL初阶学习日记(1)--- 数据库的基本操作
数据库·学习·mysql
workflower9 小时前
FDD(Feature Driven Development)特征驱动开发
大数据·数据库·驱动开发·需求分析·个人开发
韩立学长9 小时前
基于Springboot的旧物公益捐赠管理系统3726v22v(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
苦学编程的谢10 小时前
Redis_4_常见命令(完)+认识数据类型和编码方式
数据库·redis·缓存