mysql查找数据库里包含字段的表,且值
时间: 2023-08-08 22:02:16 浏览: 35
要查找数据库中包含特定字段的表和相应的值,可以使用MySQL中的信息模式(information_schema)来实现。
首先,通过查询information_schema数据库中的COLUMNS表,可以获取数据库中所有表的列信息。具体查询语句如下:
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM information_schema.COLUMNS
WHERE COLUMN_NAME = '字段名称';
其中,TABLE_SCHEMA表示数据库名称,TABLE_NAME表示表名称,COLUMN_NAME表示字段名称。将上述查询结果保存起来,得到包含特定字段的表和相应的列名。
接下来,通过遍历上述查询结果,使用动态SQL语句进行进一步查询,获得包含特定字段的表的具体值。具体查询语句如下:
SET @sql = '';
SELECT GROUP_CONCAT(DISTINCT CONCAT('SELECT \'', TABLE_NAME, '\' AS \'表名\',', COLUMN_NAME, ' AS \'值\' FROM ', TABLE_SCHEMA, '.', TABLE_NAME) SEPARATOR ' UNION ALL ')
INTO @sql
FROM information_schema.COLUMNS
WHERE COLUMN_NAME = '字段名称';
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
其中,@sql是用来保存动态查询语句的变量。该查询语句会遍历前面得到的表和列名,并将相关的查询语句通过UNION ALL进行连接。最后通过PREPARE、EXECUTE和DEALLOCATE PREPARE来执行动态查询语句。
执行以上步骤后,会得到包含特定字段的表和对应的值的查询结果。
需要注意的是,上述查询语句只适用于查找一个特定字段的情况。如果需要查找多个字段,可以按照类似的逻辑进行扩展。同时,为了确保操作的安全性,建议在执行动态SQL语句前备份相关数据。
相关推荐

















