>  Q&A  >  본문

제목 변경: MySQL에서 좋아요 수와 시간 상관 관계를 기준으로 테이블을 정렬하는 방법은 무엇입니까?

간단한 문제가 있습니다. 두 개의 mysql 테이블이 있는데 하나는 사진을 저장하고 다른 하나는 좋아요를 저장합니다. 구조는 다음과 같습니다:

으아악

이제 좋아요 수를 기준으로 사진을 쉽게 정렬하고 상위 3위를 얻을 수 있습니다. 다음 쿼리를 사용할 수 있습니다.

으아악

하지만 시간적 상관 관계를 추가하고 싶습니다. 즉, 새로운 좋아요의 "가중치"가 더 높습니다. 일부 사진의 좋아요가 더 많더라도 오래되었으므로 좋아요보다 순위가 낮습니다. 적지만 최신 사진입니다.

MySQL만 사용하여 이 문제를 해결할 수 있나요? 아니면 PHP에서 추가 처리가 필요합니까?

P粉771233336P粉771233336407일 전543

모든 응답(1)나는 대답할 것이다

  • P粉958986070

    P粉9589860702023-09-10 00:56:06

    likestimestamp가 UNIXTIME 필드인 경우를 고려하면 새 좋아요 수를 계산하는 대신 SUM(타임스탬프)을 사용하면 더 많은 가중치가 부여됩니다.

    으아악

    일부 계수를 사용할 수 있습니다(예: UNIX_TIMESTAMP())

    으아악

    회신하다
    0
  • 취소회신하다