获取由查询更新的行的Id

时间:2012-07-30 09:55:11

标签: java mysql sql jdbc prepared-statement

我想获取受Java查询影响的行的主键列值。我正在使用MySql DB。假设查询就像,

update user set pincode = 390023 where area like '%ABC Road%'

然后在java中,我想要更新每行的ID(每行的主键)。使用Java中的Statement对象可以实现的功能可能是。

2 个答案:

答案 0 :(得分:6)

在更新之前选择行。 使用select id from user where area like '%ABC Road%'

请记住将这两个操作包含在事务中,以避免在这两个操作之间进行行更改。

答案 1 :(得分:1)

SELECT id FROM user WHERE area LIKE '%ABC Road%';

或替代方式:

SET @ids = NULL;

UPDATE user
SET pincode = 390023
WHERE area LIKE '%ABC Road%'
      AND (SELECT @ids := CONCAT_WS(',', id, @ids));

SELECT @ids;