我的数据库中某处有一个值为 say Foo
的 varchar,但我不知 Prop 体位置。
是否可以创建一个查询来搜索此内容的所有表和所有列?类似于 grep
最佳答案
没有一种简单的方法可以做到这一点,但您可以使用信息模式来查找所有 varchar 列。
SELECT table_name, column_name
FROM information_schema.columns
WHERE data_type = 'varchar';
然后您可以编写一个查询来生成一个查询列表,您需要运行这些查询来搜索您的字词。
SELECT CONCAT(
'select ', column_name,
' from ', table_name,
' where ', column_name, ' like \'%foo%\''
) AS stmt
FROM information_schema.columns
WHERE data_type = 'varchar';
一个更高级的示例可能会将匹配项连同表名和列名插入到结果表中。
关于mysql - 从mysql数据库中的所有表中选择位置未知的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4945232/