본문 바로가기
MySql

MySQL ID 목록을 사용하여 여러 행 업데이트

by 베이스 공부 2020. 11. 25.
반응형

ID를 기반으로 테이블의 여러 행을 업데이트해야합니다. 저장 프로 시저에서 Ids 목록을 보유하는 varchar 변수를 만듭니다.

이제 테이블에는 Ids 1, 2의 항목이 있습니다. varchar 변수의 값은 1,2 입니다. 따라서 다음 쿼리로 업데이트되는 행이 없을 것으로 예상합니다.

UPDATE mytbl
SET flag = 1
WHERE Id IN (IdList); -- Here IdList has value '1,2'

그러나 여기에서 Id가 2 인 행이 업데이트되고 있습니다. 선택 쿼리도 동일한 행을 반환합니다. I tried concatenating IdList as "'1','2'", then it retuens both the rows (with Ids 1 and 2). Id 의 데이터 유형은 int 입니다. 정수 목록을 유지하는 적절한 방법이 있습니까?

 

해결 방법

 

이 시도:

UPDATE mytbl
SET flag = 1
WHERE @IdList LIKE CONCAT('%,',Id,',%');

varchar 목록 @IdList 는 쉼표로 시작하고 끝나야합니다 (예 : , 1,2,20,30, ).

 

참조 페이지 https://stackoverflow.com/questions/27618037

 

 

반응형

댓글