搜索完整的数据库

时间:2016-03-31 06:00:13

标签: php mysql sql codeigniter

我喜欢构建一个可以在所有表​​中搜索完整数据库的查询。

实施例。  搜索字符串:9049 现在结果我需要来自该字符串匹配的所有表的搜索结果。 只是我不能把LIKE写到表的所有字段。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以执行数据库的SQLDump(及其数据),然后搜索该文件。 要么 您可以查看information_schema表。它包含表中所有表和所有字段的列表。然后,您可以使用从此表中获取的信息运行查询。

答案 1 :(得分:0)

你可以先读出所有表格:

SELECT table_name FROM information_schema.tables WHERE table_schema = 'yourdatabasename'

然后循环遍历所有表并获取所有列:

SELECT column_name FROM information_schema.columns
WHERE table_schema = 'yourdatabasename' AND table_name = 'thetablenamefromyourloop'

然后构建一个动态语句,根据您的searchterm构建WHERE子句。

或只是获取所有信息只是读出一切。它包含有关所有表和列的所有信息,这些信息可能仅用于搜索所有varchar和text字段等。

SELECT * FROM information_schema.columns
WHERE table_schema = 'yourdatabasename'