mysql 한테이블에서 seq_no에따른 최근수정데이터 가져오기 0 2 934

by xcrew [SQL Query] mysql Query [2019.03.20 11:17:52]


아래와 같은 쿼리입니다.

SELECT 
		visual_idx,
		visual_config_idx,
		title,
		sub_title,
		content,
		status,
		seq_no,
		anchor,
		file_path,
		file_name,
		deleted,
		s_date,
		e_date,
		register_date,
		update_date
	FROM visual
	where visual_config_idx = '1' 
	and seq_no='2'
	order by update_date DESC
	LIMIT 1;

 

제가 가져오고 싶은것은 

and seq_no='1' 일때의 update_date DESC 로 맨위에 거 한건

and seq_no='2' 일때의 update_date DESC 로 맨위에 거 한건

총 두건만 동시에 가져오고 싶은데요........

그래서 아래와 같이 해보았는데 제가 원하는 결과는 아니더군요

and seq_no='2' or seq_no='1'
	order by update_date DESC
	LIMIT 2

도움 부탁드립니다.

by 우리집아찌 [2019.03.20 11:43:59]
SELECT * 
  FROM ( SELECT visual_idx,
                visual_config_idx,
                title,
                sub_title,
                content,
                status,
                seq_no,
                anchor,
                file_path,
                file_name,
                deleted,
                s_date,
                e_date,
                register_date,
                update_date,
                ROW_NUMBER() OVER(PARTITION BY seq_no ORDER BY update_date DESC ) rn
            FROM visual
           WHERE visual_config_idx = '1'
             AND seq_no IN ( '1' , '2' )
        ) A
  WHERE rn = 1       
 

 


by 마농 [2019.03.20 12:09:01]

버전이 어떻게 되나요?
MySQL 8.0 이상이면 분석함수 사용 가능합니다.
ROW_NUMBER 이용하시면 됩니다. (아찌님 답변 참조)
이하 버전이라면? 셀프조인 방식을 이용하셔야 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입