5847927828
611
2020-04-13 16:37:12
6
359

mysql 댓글 정렬


id    groupId    likes

1         1            0

2         1            0

3         1            7

4         2            1

5         3            0


id는 auto_increment 이구요 groupid 는 대댓글 기능때문에 만든 컬럼입니다.

groupId가 같은애들끼리는 꼭 붙어있어야만 합니다..

근데 이 댓글을 인기순 정렬을 하려고할때 order by likes로 하면

아래처럼 groupId와 상관없이 뒤섞이게되는데  어떻게 해야할까요....

테이블을 아예 다시짜야 할까요?

id    groupId    likes

3         1            7

4         2            1

1         1            0

2         1            0

5         3            0

0
  • 답변 6

  • onimusha
    8k
    2020-04-13 16:41:32

    order by gorupid asc, likes desc ??

  • 추추
    191
    2020-04-13 16:42:36 작성 2020-04-13 16:44:45 수정됨

    order by groupid asc, likes desc


    이렇게 정렬하면

    groupid asc 정렬하고

    groupid가 1인 애들 중에서 likes desc 정렬,

    groupid가 2인 애들 중에서 likes desc 정렬

    ....

    이런식으로 정렬합니다.

  • 난한놈만패
    441
    2020-04-13 16:42:43

    order by 그룹 아이디 , 좋아요 순으로 하시면 되겠네요

  • 5847927828
    611
    2020-04-13 17:05:54

    다들 답변 감사드립니다

    그런데 좋아요를 많이받은 그룹이 맨위로 오게 하고싶은데.. 이 부분은 방법이없을까요?

  • shaffron
    4k
    2020-04-13 17:12:40

    그럼 순서 바꾸면 됩니다


    order by likes desc, groupid asc

  • 난한놈만패
    441
    2020-04-13 17:14:01

    그룹별로 받은 좋아요 카운트 수를 SUM해서 정렬조건에 추가하세요

  • 로그인을 하시면 답변 을 등록할 수 있습니다.