查询 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');
相关推荐
煎饼学大模型27 分钟前
Agent 的“大脑-手“解耦架构:当推理层和工具执行层各自独立演进
数据库·人工智能·oracle·架构·agent
暖和_白开水3 小时前
数据分析agent(十三_3):docker mysql容器镜像服务的异常错误
mysql·docker·容器
muddjsv4 小时前
SQLite数据库文件机制详解:journal、wal、shm文件作用与备份避坑
数据库·sqlite
吴声子夜歌5 小时前
MongoDB 4.2——应用程序设计
数据库·mongodb
数字新视界5 小时前
动环监控可视化在数据中心管理中的应用与实践解析
数据库·物联网·解决方案·动环监控·大榕树
极地野狼 音乐哔哔5 小时前
数据库备份恢复的原理实践
数据库
互联网中的一颗神经元6 小时前
小白python入门 - 25. SQL 与表设计入门
数据库·python·sql
ttwuai6 小时前
AI 生成后台改数据后,操作日志别只记按钮:Go + MySQL 怎么验
数据库·人工智能·mysql·golang
KaMeidebaby6 小时前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法
ClouGence7 小时前
除了 DBeaver,2026 年还有哪些好用的开源数据库管理工具?
数据库·开源