라벨이 row인 게시물 표시

MySQL Multiple rows 를 one query 구현하기

MySQL 에 자료를 갱신할 일이 생겼다. 갱신할 자료를 가져와 배열에 담았다. list = [adm, bay, car, del, ear] 이를 반복하면서 Update 를 했더니 오래 걸린다. 자료가 약 300 ~ 400 개인데 3~4초가 나온다. 검색을 해보니 INSERT INTO tb_temp (a, b, c) VALUES(1, 2, 3) ON DUPLICATE KEY UPDATE c = c + 1 이걸 이용하면 된다고 한다. 뭐 반복문 돌면서 sql 하나의 문자열로 만들었다. 디비 결과는 중복 입력이었다. 다시 검색을 해보니 비교로 사용하는 첫번째 항목은 무조건 Primary 이어야 한다고 한다. 디비의 구조를 변경하였다. 다시 실행해보니 중복 없이 잘 갱신된다. 실행속도도 400개 정도가 1초 이내로 나온다.