您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MySQL在多个数据库中寻找价值

MySQL在多个数据库中寻找价值

这应该使您开始:

SELECT table_schema 
FROM information_schema.columns 
WHERE table_name = 'table1' AND column_name = 'id'
;

由此,您可以以任何编程语言使用结果来构成针对每个数据库的特定查询

另外,最近我也发现与此类似的边界滥用行为。

SELECT CONCAT("SELECT '", table_schema, "' "
              "FROM `", table_schema, "`.`", table_name, "` "
              "WHERE `", column_name, "` = ", searchId
       ) AS qStr
FROM information_schema.columns 
WHERE table_name = 'table1' AND column_name = 'id'
;

您将它们的结果以及UNION两者之间串联在一起,结果查询将为您提供所有模式的列表,这些模式的表名称和字段名称均与searchId相匹配。

编辑:用单引号替换了上面不适当的反引号,并…在下面添加了这个。

SET @criteriaVal := "'somestring'";
-- SET @criteriaVal := 3; -- for example

SELECT CONCAT("SELECT '", table_schema, "' "
              "FROM `", table_schema, "`.`", table_name, "` "
              "WHERE `", column_name, "` = ", @criteriaVal
       ) AS qStr
FROM information_schema.columns 
WHERE table_name = 'table1' AND column_name = 'id'
;
MySQL 2022/1/1 18:32:35 有523人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶