본문 바로가기
MySql

MySQL MYSQL - Update using while loop

by 베이스 공부 2020. 9. 18.
반응형
declare c int 
set c = 1
while c<700 do
update users set profile_display_name = concat(substring(first_name,1,1), last_name) 
        where profile_display_name is null and id between ((c-1)*10000+1) and (c*10000);
SET c = c+1;
End while ;

오류가 발생합니다. 선언과 while 문을 종료합니다. 내가 어디에서 실수하고 있니 ??

 

해결 방법

 

이것은 나를 위해 훨씬 더 잘 작동합니다.

DELIMITER $$

CREATE DEFINER=`ops`@`localhost` PROCEDURE `myproc`()
BEGIN
DECLARE c INT;
SET c = 1;
WHILE c < 700 DO 
SELECT CONCAT('Loop #:', c) ;

update users 
set profile_display_name = concat(substring(first_name,1,1), last_name) 
where (profile_display_name is null or profile_display_name = '')
and id between ((c-1)*10000+1) and (c*10000); 

commit;

SET c=c+1; 

END WHILE;
END

 

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

 

 

반응형

댓글