私はこのようなテーブルを持っている(これはサンプルデータです):特定の時間帯に発生したエントリを見つける方法はありますか?
user (int) | credits (int) | time (timestamp as bigint)
42 | 1000 | 1482015600 (18/12/2016 0:00:00)
42 | 1000 | 1482019200 (18/12/2016 1:00:00)
84 | 1000 | 1482022800 (18/12/2016 2:00:00)
84 | 1000 | 1482120000 (19/12/2016 5:00:00)
42 | 1000 | 1482130800 (19/12/2016 8:00:00)
自分のサイト上の宝くじは問題を抱えていたし、一部のユーザーが複数回日をプレイすることができました(私はの理論的限界を持っています24時間ごとに1回再生)。 私はそこにあってはいけないすべてのエントリを探したい。
私の例では、ユーザー42が騙されていることがわかります。最初の2つのエントリが24時間の範囲で2回再生していることがわかります。彼は真夜中と午前1時に遊んだ。 Player 84は不正行為をしなかったが、彼は24時間以上プレイするのを待った。 20/19/12にプレイヤー42が再びプレイしましたが、今回はそれがカンニングではないため、最後の有効なプレイは24時間以上前です。
純粋にSQLで行う方法はありますか?または、PHPを立ち上げて、すべてのユーザーと繰り返し実行する必要があります...ひどいスクリプトを作成しますか? ありがとう!
質問にサンプルデータを投稿してください – GurV
時間の列にはどの値を保存していますか?それらがUNIXのタイムスタンプであれば、1人のユーザーの2つの時間の差分を24時間のタイムスタンプの差分と比較することができます –
私はいくつかのサンプルデータを追加し、私の例を改訂しました。あなたのお時間をありがとう! –