是否可以使用 java preparedstatement SQL 搜索 MySQL workbench 数据库中的所有表以更改值?

Is it possible to search all tables in MySQL workbench database with java preparedstatement SQL in order to change a value?

我在 Schema/Database 中有几个这样的 table(架构称为“用户”) MySQL workbench:

----Table 1----
User       Score
John       5
Sarah      3

----Table 2----
User       Score
John       5

----Table 3----
User       Score
John       5
Sarah      3

假设 Sarah 的分数变为 5。我想将她存在的所有 table 中的所有分数更新为 5。那么 3 table s 看起来像这样:

 ----Table 1----
User       Score
John       5
Sarah      5

----Table 2----
User       Score
John       5

----Table 3----
User       Score
John       5
Sarah      5

是否可以使用 java 准备好的 SQL 语句来做到这一点?如果是这样,我该怎么做?提前致谢。我似乎找不到任何东西。我知道可行的一种方法是搜索每个 table,将 table 名称放入数组列表中,然后循环搜索每个名称。但我不确定这是最好的方法。

我在想这样的事情,如果可能的话(一些笨拙的伪代码):

SELECT ALL_TABLES WHERE user = "SARAH" UPDATE score = 5

看来您需要像这样动态构建语句:

set @user="SARAH";
set @score=5;
select 
   CONCAT("UPDATE `",c1.TABLE_NAME,"` SET score=",@score," WHERE user='",@user,"'") as statement  
from 
   information_schema.columns c1
inner join
   information_schema.columns c2 on c1.TABLE_SCHEMA=c2.TABLE_SCHEMA
                                and c1.TABLE_NAME=c2.TABLE_NAME
                                and c2.COLUMN_NAME='score'
where c1.TABLE_SCHEMA='test' and c1.COLUMN_NAME='user'
;

输出可以是这样的:

+-------------------------------------------------+
| statement                                       |
+-------------------------------------------------+
| UPDATE `table 1` SET score=5 WHERE user='SARAH' |
| UPDATE `table 2` SET score=5 WHERE user='SARAH' |
| UPDATE `table 3` SET score=5 WHERE user='SARAH' |
+-------------------------------------------------+

How to Execute Dynamic Sql String as a Query in mysql server? 之前有人问过...