在名称中包含另一个字符串的所有表中搜索具有类文本类型的列内的字符串

时间:2013-05-02 10:14:44

标签: mysql

我正在处理的数据库大约有30个表,可能包含我想要找到的不同数据。不是理想的情况,但嘿嘿。

给出两个字符串......

  • string1 - 表名中显示的值。
  • string2 - 要搜索类似文本列的值。

...我想搜索名称匹配string1的所有表,其中包含数据类型为...的列

  • 文本
  • VARCHAR

...用于数据行like "%string2%"

我理想情况下返回的是一个结果集,每个string1string2匹配一行,格式如下:

  • table_name_string1_appears_in
  • colum_name_string2_appears_in
  • value_from_id_col_of_table_with_name_like_string1
  • data_from_cell_matching_string2

可以为此重用可用的纯mysql解决方案吗?

2 个答案:

答案 0 :(得分:0)

php-workaround(非纯sql)是将30个表的名称存储在数组中。 预先计算每个值,并评估表名是否是您的aray值的一部分。如果是,则对该表名称运行%string2%选择查询

答案 1 :(得分:0)

如果您想在所有数据库中搜索字符串

然后这样做

   mysqldump -u myuser --no-create-info databasename > myfile.sql

并在myfile.sql中找到你的字符串

或尝试此解决方案here