DROP TABLE if EXISTS temp;
CREATE TABLE temp(tablename VARCHAR(255),LieName VARCHAR(255));
delimiter $$
DROP procedure IF EXISTS getDataByDbName $$
CREATE procedure getDataByDbName(in dbName VARCHAR(255),IN ziduan VARCHAR(255))
BEGIN
DECLARE num INT;
SET @STMT =CONCAT("SELECT COUNT(*) FROM ",dbName," WHERE `",ziduan,"` LIKE BINARY '%特定值%' INTO @num;");
PREPARE STMT FROM @STMT;
EXECUTE STMT;
IF(@num>0) THEN
INSERT INTO temp VALUES (dbName,ziduan);
END IF;
end$$
delimiter ;
delimiter $$
DROP PROCEDURE IF EXISTS processquanjusou$$
CREATE PROCEDURE processquanjusou()
BEGIN
DECLARE done BOOLEAN DEFAULT 0;
DECLARE biao VARCHAR (255);
DECLARE ziduan VARCHAR (255);
DECLARE indexss CURSOR
FOR
SELECT TABLE_NAME,COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='数据库名' ;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
OPEN indexss;
repeat
FETCH indexss INTO biao,ziduan;
call getDataByDbName(biao,ziduan);
UNTIL done END repeat;
CLOSE indexss;
end$$
delimiter ;
CALL processquanjusou();
SELECT * FROM temp;
mysql 查询某个特定值在整个数据库中所在的表和字段 (已知数据库和字段值,查询表明和字段名)
最新推荐文章于 2023-01-04 15:44:02 发布
本文介绍了一种使用SQL存储过程批量查询数据库中特定值的方法。通过创建临时表和存储过程,可以遍历数据库中的所有表和字段,检查是否包含特定值,并将结果汇总到一个临时表中,便于后续的数据分析和处理。
&spm=1001.2101.3001.5002&articleId=107045833&d=1&t=3&u=ea042f5080424d0899530109ee33b441)
1万+

被折叠的 条评论
为什么被折叠?



