検索

ホームページ  >  に質問  >  本文

MySQL で、ソート列によるソート中にデータの時間変化を考慮しながら次のデータ行を取得するにはどうすればよいでしょうか?

わかりました、私の質問は少し具体的で説明するのが難しいです。そこで、単純化してみます。

Web サイトからの「プロンプト」を表示する MySQL テーブルがあります。プロンプトは、「順序」列の整数によってソートされます。したがって、テーブルは次のようになります: id (増加する int)、プロンプト (varchar)、順序 (int)。

最初のプロンプトがユーザーに表示されると、ユーザーが確認するまでそのプロンプトが表示され、その後、次のプロンプトが表示されます。

ユーザーが最後に確認したプロンプトに基づいて次のプロンプトを取得するクエリを思いつきました:

リーリー

このクエリは非常に便利です。ただし、新しいプロンプトを追加する必要がある場合があります。通常は最後のプロンプトではなく、途中のどこかに追加します。たとえば、ユーザーには順序 #6 の最後のプロンプトが表示されましたが、位置 #3 に新しいプロンプトを追加しました。この新しいプロンプトは、このユーザーがプロンプト #6 をすでに見たことが保存されているため、このユーザーには表示されません。

この問題を管理する方法はありますか?おそらく必要な MySQL クエリは 1 つか 2 つだけでしょうか?

ヘルプやヒントをいただきありがとうございます。

編集: 各ユーザーには、独自の「見たステータス」があります。それを PHP の $_SESSION['last_seen_item_order'] に保存するだけです。

P粉420958692P粉420958692454日前548

全員に返信(1)返信します

  • P粉798343415

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

    このロジックでは管理できません。

    このためには、追加の列を維持する必要があります - seen ユーザーがすでに hints を閲覧している場合は、それを 1 に設定できます。 したがって、クエリは -

    になります。 リーリー

    - これをお勧めします。他にもたくさんのアイデアがあります。

    ######編集### - ユーザーごとにプロンプ​​トを維持したい場合は、

    seen を維持するための 2 つのオプションがあります。 ユーザーに表示されるプロンプトを

    json
      形式で維持します。
    1. user_hints_see
    2. という名前の別のテーブルを作成します。このテーブルには、
    3. id (増分)、user_idhint_idseen# が含まれます。 ##カラム。

      返事
      0
  • キャンセル返事