서브쿼리 질문입니다.

서브쿼리 질문입니다.

QA

서브쿼리 질문입니다.

답변 2

본문


SET @num = 0;
SELECT *,(@num:=@num+1) AS num FROM (SELECT * FROM `g5_scrap`) AS num WHERE mb_id = 'xxx' order by ms_id desc

 

위의 쿼리로 질의했을때

결과가

 

ms_id | mb_id | bo_table | wr_id | ms_datetime | num

127   | xxx     | 보드이름 | 128   | 날짜            | 1

125   | xxx     | 보드이름 | 121   | 날짜            | 2

122   | xxx     | 보드이름 | 110   | 날짜            | 3

121   | xxx     | 보드이름 | 100   | 날짜            | 4

111   | xxx     | 보드이름 | 199   | 날짜            | 5

110   | xxx     | 보드이름 | 532   | 날짜            | 6

109   | xxx     | 보드이름 | 335   | 날짜            | 7

 

이렇게 출력됩니다.

근데 여기서

ms_id 가 127인 row의 num 값을 어떻게 가져와야 하나요?ㅠ

이 질문에 댓글 쓰기 :

답변 2

서브쿼리가 아니라 인라인 테이블로 처리 하는게 맞는듯 합니다.


SET @num = 0;
SELECT ms_id FROM (
    SELECT *,(@num:=@num+1) AS num
    FROM (SELECT * FROM `g5_scrap`) AS num
    WHERE mb_id = 'xxx' order by ms_id desc
 ) T
WHERE T.num = 127

 

이런식으로요 ^^

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 60
© SIRSOFT
현재 페이지 제일 처음으로