이전 목록 다음
채택완료

db에 중복제거 하고 하나만 가져오기?

2021-05-16 (일) 12:10:38 2,243

school 이라는 table에

졸업년도 , 이름 이라는 칼럼이 있습니다.

졸업년도는 2002,2003,2004 이렇게 총 3개인데 각각 100여개 정도 되며 곧 2005도 추가가 됩니다.

제가 원하는 것은

가장 최근의 졸업년도만 두개 가져오고자 합니다. 2004,2003입니다.

2004 김아무개

2004 김개똥

2004 홍길동

2004 최아무개

2004 박아무개

2003 이아무개

2003 홍아무개

2003 서아무개

2002 황아무개

2002 임아무개

이런식으로 있을떄 가장 최근에 등록된 졸업년도 2004,2003만 가져오고자 하는데 어떻게 해야하나요?

|

답변 3개 / 댓글 1개

채택된 답변
+20 포인트

최신 2개 년도만 추출

Copy
select year from `school` where 1=1 group by year order by year desc limit 2

해당 년도의 다른조건의 DATA들 추출

Copy
select * from `school` where 1=1 and year IN ( select year from `school` where 1=1 group by year order by year desc limit 2 )

정도 되지 않을까요? 참고만 하세요.

답변에 대한 댓글 1개

저 쿼리를 sql_query로 날렸는데 출력이 되지 않습니다. 어떻게 해야할까요 ㅠㅠ

$sql = "select year from `school` where 1=1 group by year order by year desc limit 2";
$row = sql_query($row);
echo $row['round'];
2021-05-17 (월) 16:43:16

select year from `school` where 1=1 group by year order by year desc limit 2
 

2021-05-16 (일) 12:32:40

oracle은 가능한데

mysql에서는

select `name`, SUBSTRING_INDEX( group_concat(

DISTINCT `year` SEPARATOR ','),',',2) AS years from TAB group by name

이 정도 되겠네요.

답변을 작성하려면 로그인이 필요합니다.