GROUP BY 2

MySql 에서 정렬 후 그룹 하는 방법.

사용자들이 올린 글 중에 가장 최신의 글 한개씩만 출력해주는 부분이 필요했다. 정렬 후 그룹화 아무 생각없이 손 가는대로 뭐 되겠지 라는 생각으로 쿼리를 만들었다. SELECT * FROM tableName GROUP BY tableName.user_idx ORDER BY tableName.register_date 한눈에 실행해서 봤을땐 "뭐 그룹핑도 되고 최신에 올린것도 뜨네..." 라고 생각을 하고 덮었는데 다시 테스트를 해보니. 사용자별 가장 최신 글이 아닌 그룹된 사용자 중 가장 최신 게시물 순으로 정렬이 되는거 아닌가!!!! 원하는 프로세스는 [정렬 => 그룹화] 인데. 동작하는 프로세스는 [그룹화 => 정렬] 이였다. 제길!!! 해결 방안은 2가지. 우선! [1안] 테이블 구조를 날짜 역순으로..

mysql 에서 group by 사용할때 결과값 행수를 알아내기.

검색된 값이 몇개인지를 알기 위해 "select count(1) from table" 로 알아냈는데. group by 를 사용하여 셀렉해온 결과물에 대해서는 count 가 각각의 행마다 적용이 되어 원하는 값이 안나오게 되었다. 그래서 뒤져본 결과 PHP 함수상에서 mysql_num_rows 라는 함수가 있다. 속도는 느리지만 이것을 사용하는게 대안. 다른 방법들 중 제대로 되는것들은 드뭄. 대신 갯수가 많아지면 어떤 결과가 나올지 모르겠네. 아구

반응형