서브쿼리 질문입니다. 채택완료
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
이런식으로요 ^^
답변에 대한 댓글 2개
WHERE T.num = 127 ==> WHERE T.ms_id = 127
로 바꾸시면 원하는 결과가 나오지 싶으네요 ^^
댓글을 작성하려면 로그인이 필요합니다.
WHERE mb_id = 'xxx' 다음에 and ms_id = 127 하면 되지않을까요 ?
즉
WHERE mb_id = 'xxx' and ms_id = 127 으로 해주면 될것 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인