Summry
본 문서에서는 mysql에서 rownum을 사용하는 방법을 정리한다.
send me email if you have any questions.
table join을 진행하고 나서 각 row에 number(index)를 붙이기 위해 아래의 방법을 사용한다.
SET 구문을 사용하여 초기화
SET 구문을 사용하여 조회하기 전에 rownum을 초기화 하고, 데이터를 조회
SET @rownum:=0;
SELECT @rownum:=@rownum+1, column1
FROM 테이블명;
- 초기화 구문을 넣지않고 @rownum:=@rownum+1 만으로 데이터를 조회하게 된다면, 조회할 때마다 rownum값이 매번 바뀌게 된다.
WHERE절에서 초기화
WHERE 절에 rownum을 초기화하는 조건을 붙여서 조회
SELECT @rownum:=@rownum+1
FROM 테이블명
WHERE (@rownum:=0)=0;
join + rownum 사용 예제
table1
table1_index | column1 |
---|---|
1 | A1 |
2 | A2 |
table2
table2_index | column2 |
---|---|
1 | B1 |
2 | B2 |
sql
SELECT @rownum:=@rownum+1 AS idx, a.column1, b.column2
FROM table1 AS a
JOIN table2 AS b
WHERE (@rownum:=0)=0;
결과
- rownum 미사용
column1 | column2 |
---|---|
A1 | B1 |
A1 | B2 |
A2 | B1 |
A2 | B2 |
- rownum 사용
idx | column1 | column2 |
---|---|---|
1 | A1 | B1 |
2 | A1 | B2 |
3 | A2 | B1 |
4 | A2 | B2 |
Reference
PREVIOUSMySQL 테이블 명세서 추출 쿼리