如何使用select SQL编写更新SQL

时间:2011-10-07 07:32:39

标签: sql select sql-update

我想编写一个更新SQL语句,但是这个语句的一个conidtion是select SQL语句的结果,我还想返回select SQL语句的结果。

像这样:update ... set ... where id = (select id from ...)

我想返回id的值。

有人知道我该怎么办?

提前致谢!

4 个答案:

答案 0 :(得分:2)

我不相信在一个声明中这是可能的。更新然后查询(选择)新值,或先查询值,然后提交更新。

替代方案是数据库上的存储过程,它执行多个查询并为您返回结果。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

这也适用于INSERT和DELETE语句。 (参见documentation。)

答案 3 :(得分:0)

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

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

  1. 选择您想要的ID
  2. 调用更新查询,将先前选择的ID作为参数传递