2012-07-30 4 views
4

Java에서 쿼리의 영향을받은 행에 대한 기본 키 열 값을 가져 오려고합니다. 나는 MySQL DB를 사용하고있다. 쿼리가 다음과 같다고 가정합니다.쿼리에 의해 업데이트 된 행의 ID를 얻습니다.

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

그런 다음 Java에서 각 행의 ID (각 행의 기본 키)를 업데이트합니다. Java에서 Statement 객체로 가능한 일이있을 수 있습니다.

답변

6

업데이트하기 전에 행을 선택하십시오. select id from user where area like '%ABC Road%'을 사용하십시오.

둘 사이의 행 변경을 피하기 위해 두 작업을 트랜잭션으로 묶어야합니다.

+0

K ... 그래서 업데이트 후 그 ID를 얻을 수 없습니다 ... 같은 삽입 후 우리는 ID를 사용하여 getGeneratedKeys() 문의 방법을 얻을 수 있습니다. ... – hemu

+0

나는 그럴 수 없다고 확신한다. 내가 아는 한 MySQL은 그냥 마지막으로 삽입 된 행 ID를 반환 할 수 있습니다. –

+0

삽입의 경우 기본 열이 자동 증가로 설정된 경우 Id를 얻을 수 있습니다 ...... – hemu

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; 
관련 문제