Copy
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개 / 댓글 2개
채택된 답변
+20 포인트
서브쿼리가 아니라 인라인 테이블로 처리 하는게 맞는듯 합니다.
Copy
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
이런식으로요 ^^
답변을 작성하려면 로그인이 필요합니다.