如何使用select SQL编写更新SQL

如何使用select SQL编写更新SQL,sql,select,sql-update,Sql,Select,Sql Update,我想写一个update SQL语句,但该语句的一个conidtion是select SQL语句的结果,我还想返回select SQL语句的结果 像这样:更新。。。设置其中id=从中选择id 我想返回id的值 有人知道我该怎么做吗 提前谢谢 我不相信有一种说法能做到这一点。更新然后查询选择新值,或先查询值,然后提交更新 另一种选择是数据库上的存储过程,它执行多个查询并为您返回结果。这在我所知道的所有Java数据库框架中都是不可能的。可能需要用Java将查询和更新分开。在update语句的WHERE

我想写一个update SQL语句,但该语句的一个conidtion是select SQL语句的结果,我还想返回select SQL语句的结果

像这样:更新。。。设置其中id=从中选择id

我想返回id的值

有人知道我该怎么做吗


提前谢谢

我不相信有一种说法能做到这一点。更新然后查询选择新值,或先查询值,然后提交更新


另一种选择是数据库上的存储过程,它执行多个查询并为您返回结果。

这在我所知道的所有Java数据库框架中都是不可能的。可能需要用Java将查询和更新分开。

在update语句的WHERE子句中使用subselect没有任何问题

对于第二个请求,即获取id的值,我知道这在DB2中是可能的,也许其他人也实现了该语法:

SELECT id FROM FINAL TABLE (
  update ... set ... where id = (select id from ...)
)

这也适用于INSERT和DELETE语句。请参阅。

Update语句不会返回更新的数据集。在这种情况下,select将是无法直接访问的子select

因此,您必须使用至少两个查询:

选择所需的ID 调用将先前选择的ID作为参数传递的更新查询
也许您应该在RDBMS中创建一个过程,并从java调用它。是的,我将遵循存储过程方法。关于存储过程的警告:除非您已经在使用它们,否则它们将引导您走上一条特定于数据库的路线。如果您想保持对数据库的不可知性,我倾向于使用多个简单的sql查询。