찾다

 >  Q&A  >  본문

MySQL에서 정렬 열을 기준으로 정렬하는 동안 데이터의 시간 변화를 고려하면서 다음 데이터 행을 가져오는 방법은 무엇입니까?

알겠습니다. 제 질문은 좀 구체적이고 설명하기 어렵습니다. 그래서 단순화하려고 노력하겠습니다.

웹사이트의 "팁"을 표시하는 MySQL 테이블이 있습니다. 프롬프트는 순서 열의 정수를 기준으로 정렬됩니다. 따라서 테이블은 다음과 같습니다: id(int 증가), 프롬프트(varchar), order(int).

이제 첫 번째 프롬프트가 사용자에게 표시되면 사용자가 확인할 때까지 표시되고 다음 프롬프트가 표시됩니다.

사용자가 마지막으로 확인한 프롬프트를 기반으로 다음 프롬프트를 받기 위한 쿼리를 생각해냈습니다.

으아악

이 쿼리는 매우 유용합니다. 그러나 때때로 새 프롬프트를 추가해야 하는 경우가 있는데, 일반적으로 마지막 프롬프트가 아닌 중간 어딘가에 있습니다. 예를 들어 사용자는 주문 #6의 마지막 프롬프트를 보았지만 위치 #3에 새 프롬프트를 추가했습니다. 이 사용자는 이미 프롬프트 #6을 보았다는 사실을 저장했기 때문에 이 새로운 프롬프트는 이 사용자에게 표시되지 않습니다.

이 문제를 관리할 수 있는 방법이 있나요? 아마도 하나 또는 두 개의 MySQL 쿼리만 필요할까요?

어떤 도움이나 팁이라도 미리 감사드립니다.

EDIT: 각 사용자는 자신만의 "조회 상태"를 가지고 있습니다. 간단히 PHP의 $_SESSION['last_seen_item_order']에 저장합니다.

P粉420958692P粉420958692462일 전554

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

  • P粉798343415

    P粉7983434152023-09-08 10:34:15

    이 논리로는 관리할 수 없습니다.

    이를 위해서는 추가 열을 유지해야 합니다. - seen 이미 본 사용자라면hints,您可以将其设置为1 따라서 귀하의 질문은 다음과 같습니다 -

    으아악

    NOTE - 제가 추천드리는 내용입니다. 당신은 다른 많은 아이디어를 가질 수 있습니다.

    편집 - 사용자별로 프롬프트를 유지하려면 seen 유지하는 두 가지 옵션이 있을 수 있습니다.

    1. 사용자를 위해 유지되는 json 형식의 프롬프트를 확인하세요.
    2. id(증분), user_id, hint_id, user_hints_see的单独表,其中包含id(自增)、user_idhint_idseenColumn을 포함하는 user_hints_see라는 별도의 테이블을 만듭니다.

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