2017-11-13 12 views
1

데이터를 반환하지 않으며, 나는 다음을 수행 할 :것은 내가의 ID 열이있는 로그 테이블을 가지고

  • 은 ID 및 행 수
  • 를 선택

내 목표는 그 전에 특정 행뿐만 아니라 행을 얻을 수있는 행 수에 따라 자체에 테이블에 가입하세요. 아래의 SQL 쿼리는 실제로 아무 것도 반환하지 않습니다. 행 번호를 완전히 잊어 버리는 것 같습니다. ID에 가입하면 괜찮습니다.

이러한 종류의 작업을 지원하기 위해 MySQL에서 수행해야 할 것이 있습니까?

select * from 
    (select id, @rownum := @rownum + 1 as 'row' 
     from logs, (select @rownum := 0) r order by id) a 
join 
    (select id, @rownum := @rownum + 1 as 'row' 
     from logs, (select @rownum := 0) r order by id) b 
on a.row = b.row; 

답변

1
예기치 않은 결과가

select * from 
    (select id, @rownum := @rownum + 1 as 'row' 
     from logs, (select @rownum := 0) r order by id) a 
join 
    (select id, @rownum1 := @rownum1 + 1 as 'row1' 
     from logs, (select @rownum1 := 0) r order by id) b 
on a.row = b.row1; 
을 생산할 수있는 두 쿼리에 같은 변수를 사용하여, 두 번째 쿼리에 변수 이름을 변경