gpt4 book ai didi

MySQL查询在完整数据库中搜索记录

转载 作者:行者123 更新时间:2023-11-30 00:16:28 26 4
gpt4 key购买 nike

我正在搜索一个通过 PhpMyAdmin 运行的 SQL 查询,以查找数据库的所有表中包含给定字符串的所有记录。到目前为止我发现的只是一个查询:

SELECT * FROM information_schema.`COLUMNS` C WHERE TABLE_SCHEMA = 'final_year_project_demo'

它返回模式中的所有表,但我的 SQL 效率不高,因此无法进一步移动。

我需要的只是一个查询,它将列出通过上面代码列出的所有表中的所有记录(包含任何列中的特定字符串)。所有表中的列都是相同的。

最佳答案

这是一件有点复杂的事情。而你确实无法一步完成。我会给你一些开始的东西,你必须从那里开始:

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id";

现在这将产生如下输出:

+--------------------------------------------------------------------+
| CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") |
+--------------------------------------------------------------------+
| SELECT * FROM table0 WHERE user_id=1; |
| SELECT * FROM table1 WHERE user_id=1; |

现在,您想转身执行所有这些命令...所以这样做:

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id" INTO OUTFILE "some_file_path_and_name";

这将为您提供一个文本文件,其中包含您正在查找的所有命令。

更新---

我错过了“对于任何列位..”

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE ", COLUMN_NAME, "='WHATEVER';") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLLATION_NAME IS NOT NULL INTO OUTFILE 'somepath';

在这里,我们使用的事实是您说您正在寻找字符串,并且所有字符串类型字段都有一个 collat​​ion_name。将 WHATEVER 替换为您要查找的内容。

关于MySQL查询在完整数据库中搜索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23618727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com