查询以查找数据库中所有出现的字符串

时间:2019-01-23 17:00:57

标签: sql where firebird

我正在尝试在数据库中找到特定的字符串。我目前正在使用FlameRobin打开FDB文件,但是该软件似乎没有适当的功能来完成此任务。

我尝试了以下SQL查询,但没有成功:

SELECT
  *
FROM
  *
WHERE
  * LIKE '126278'

毕竟,什么是最好的解决方案?预先感谢。

2 个答案:

答案 0 :(得分:0)

以下是Firebird文档:https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25.html

您需要阅读

  1. “可选”类型的存储过程,
  2. execute statement命令,包括for execute statement变体
  3. 系统表,名称中具有“关系”。

然后在SP中枚举所有表,然后枚举这些表中的所有列,然后为每个表运行常规

       select 'tablename', 'columnname', columnname 
       from tablename 
       where columnname containing '12345'

遍历每个表的每个字段。


但是实际上,最好是避免使用SQL命令,而是将所有数据库提取到一个长SQL脚本中,然后在记事本(或任何其他文本编辑器)中打开该脚本,然后在其中搜索所需的字符串会更好。

答案 1 :(得分:0)

您不能这样做。但是您可以将FDB文件转换为CSV这样的文本文件,以便您可以同时在所有表/文件中搜索字符串。

1。下载数据库转换器

第一步,您需要一个软件来转换数据库文件。我建议使用Full Convert来完成。只需获得免费试用版并下载即可。它真的很容易使用,并且可以将每个表导出到不同的CSV文件中。

2。同时在多个文件中查找字符串

对于该任务,您可以使用Notepad++查找文件功能来搜索位于同一文件夹中的所有CSV文件中的字符串。

3。在FlameRobin上打开所需的表格

当Notepad ++突出显示该字符串时,它将显示它在哪个文件中以及行号。完全转换会使用与原始表相同的名称保存每个CSV,因此无论您使用什么数据库管理器软件,都可以轻松找到它。