【问题标题】:Search In complete database在完整的数据库中搜索
【发布时间】:2016-07-19 10:17:43
【问题描述】:

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

例如。 搜索字符串:9049 现在在结果中,我需要该字符串匹配的所有表的搜索结果。 只是我不能对表的所有字段都写 LIKE 。

提前致谢。

【问题讨论】:

  • 使用什么平台/工具与您的数据库交互?
  • @SantoshRamKunjir Nop。到目前为止,我只使用搜索特定字段。这是我第一次面对。所以不知道该怎么做。
  • @AshwaniGoyal codeigniter PHP 框架。
  • stackoverflow.com/questions/8435963/… 已经提出了同样的问题。你需要在 CI 中混合它
  • @AshwaniGoyal 不符合我的要求。

标签: php mysql sql codeigniter


【解决方案1】:

你可以先读出所有的表格:

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'

然后构建一个动态语句,即根据您的搜索词构建 WHERE 子句。

或者要获取所有信息,只需读出所有内容。这包含有关所有表和列的所有信息,这对于仅在所有 varchar 和文本字段等中进行搜索可能很有用。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2012-04-01
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多