mysql 순서를 주기위해 sort번호 업데이트 하는 부분에서 막혔습니다 ㅠ 0 3 1,855

by Tension [MySQL] [2018.08.24 16:38:03]


auto Increase 되는 index와 

한글로 된 컬럼 col1이있습니다

 

현재는 집어넣는되로 데이터가 쌓여있어서 sort 컬럼을 줘서 ㄱㄴㄷ 순서로 정렬이 되게 하려고합니다

그래서

 

update T as a inner join(

SELECT index, @seq := @seq+1 AS seq

FROM T, (SELECT @seq := 0) A order by col1

) as b

on a.index = b.index

set a.sort = b.seq

이런식으로 하였는데(조건값은 생략하였습니다 )

 sort에 값이 들어가긴하지만 뭔가 order by col1으로 한것처럼 들어가지는 않습니다 ㅠ 

 

어디부분이 수정이 들어가야 할까요 ,,

 

by 우리집아찌 [2018.08.24 17:10:20]

정렬시 속도 때문에 그러신다면 한글로 된 컬럼 COL1에 INDEX를 생성하는게 더 좋을듯합니다.


by 야신 [2018.08.25 13:34:36]
UPDATE (
         SELECT index, @seq := @seq+1 AS seq
          FROM T, (SELECT @seq := 0) A order by col1
       ) B STRAIGHT_JOIN T A ON on B.index = A.index
SET    set A.sort = B.seq

이렇게 한번 해보시지요.


by 마농 [2018.08.27 11:00:17]

ORDER BY col1 으로 순서대로 정렬이 가능한데? ==> seq 항목이 굳이 왜 필요한거죠?
동일하게 테스트 해봤는데. ==> 저는 정상적으로 업데이트 되네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입