서브쿼리 질문입니다. 채택완료
lacomparte
7년 전
조회 1,990
</p>
<p>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</p>
<p>
위의 쿼리로 질의했을때
결과가
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개
채택된 답변
+20 포인트
7년 전
서브쿼리가 아니라 인라인 테이블로 처리 하는게 맞는듯 합니다.
</p>
<p>SET @num = 0;</p>
<p>SELECT ms_id FROM (</p>
<p> SELECT *,(@num:=@num+1) AS num</p>
<p> FROM (SELECT * FROM `g5_scrap`) AS num</p>
<p> WHERE mb_id = 'xxx' order by ms_id desc</p>
<p> ) T</p>
<p>WHERE T.num = 127</p>
<p>
이런식으로요 ^^
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
l
lacomparte
7년 전
감사합니다. 아직 저에겐 너무 어려운게 많네요 ㅋㅋ
�
나시
7년 전
SELECT ms_id FROM ( ==> SELECT T.num FROM
WHERE T.num = 127 ==> WHERE T.ms_id = 127
로 바꾸시면 원하는 결과가 나오지 싶으네요 ^^
WHERE T.num = 127 ==> WHERE T.ms_id = 127
로 바꾸시면 원하는 결과가 나오지 싶으네요 ^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인