mysql - 从mysql数据库中的所有表中选择位置未知的东西

标签 mysql select grep

我的数据库中某处有一个值为 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/

相关文章:

php - 从标题的开头删除不需要的字符

mysql - 如何根据以前的列值更新 sql 列

mysql - 改进对多个表进行计数和连接的查询

jquery - 如何获取单击框的最接近元素的选定选项?

c - 在 C 中将字符串传递给 popen 时保留双引号

mysql - 使用MYSQL UNIQUE INDEX 和 INDEX

javascript - Select2 在加载了 JQuery 的元素上

MySQL - 选择一行 - 然后相对于所选的下一个和前一个

bash 脚本和命令行 greping

regex - 查找接口(interface)的网关