서브쿼리 질문입니다.
본문
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
이런식으로요 ^^
!-->WHERE mb_id = 'xxx' 다음에 and ms_id = 127 하면 되지않을까요 ?
즉
WHERE mb_id = 'xxx' and ms_id = 127 으로 해주면 될것 같습니다.
답변을 작성하시기 전에 로그인 해주세요.