728x90
반응형
MYSQL 작업시 테이블에는 없는 순번을 매기는 방법입니다.
1 2 3 4 5 6 7 8 9 10 | /*변수 선언을 위에 해주는 방식*/ SET @rownum:=0; SELECT @rownum:=@rownum + 1 as rNum, t1.* FROM TABLE_NAME t1 ; | cs |
혹은
1 2 3 4 5 6 7 8 9 | /*변수 선언을 내부에 해주는 방식*/ SELECT @rownum:=@rownum + 1 as rNum, t1.* FROM TABLE_NAME t1, (SELECT @rownum:=0) t2 ; | cs |
그냥 아무런 조건 없이 순번을 주실 때는 이렇게 해주시면 됩니다.
만약 그룹별로 순번을 다르게 매기고 싶으시다면
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* 변수 선언을 위에 해주는 방식*/ /* 만약 조건이 문자열이라면 */ /* 만약 조건이 숫자라면 */ /* SET @val:=''; */ /* SET @val:=0; */ /* 위에것 둘 중 하나만 써주시면 됩니다. */ /* 만약 그룹지을 조건이 VAL1 이라면 */ SET @rownum:=0; SELECT MAIN.* FROM ( SELECT (CASE @val WHEN t1.VAL1 THEN @rownum:=@rownum+1 ELSE @rownum:=1 END) as rNum, (@val:=t1.VAL1) temp, t1.* FROM TABLE_NAME t1 ORDER BY t1.VAL ) MAIN; | cs |
이렇게 해주시거나
혹은
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /* 변수 선언을 내부에 해주는 방식*/ /* 만약 그룹지을 조건이 VAL1 이라면 */ SELECT MAIN.* FROM ( SELECT (CASE @val WHEN t1.VAL1 THEN @rownum:=@rownum+1 ELSE @rownum:=1 END) as rNum, (@val:=t1.VAL1) temp, t1.* FROM TABLE_NAME t1, (SELECT @val:='', @rownum:=0) SUB ORDER BY t1.VAL ) MAIN; | cs |
이렇게 순번을 매기시면 됩니다.
728x90
반응형