MYSQLは継続サインイン機能を実装しており、サインイン後1日経過すると最初から開始します(SQL文)

MYSQLは継続サインイン機能を実装しており、サインイン後1日経過すると最初から開始します(SQL文)

1. テストテーブルを作成する

テーブル `testsign` を作成します ( 
 `userid` int(5) デフォルト NULL, 
 `username` varchar(20) デフォルト NULL, 
 `signtime` タイムスタンプ NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP、 
 `type` int(1) デフォルト '0' コメント '0はサインインデータ、1はサインイン日付辞書データを表します' 
) エンジン=InnoDB デフォルト文字セット=utf8

2. テストデータを挿入します。サインイン時間は5月21日から6月5日までです。ライブで記述できますが、ストアドプロシージャを記述する必要があります。私は怠け者です。3番目のポイントであるサインインデータを取得するためのコードに焦点を当てる必要があります。ハハ

`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-21 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-22 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-23 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-24 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-25 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-26 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-27 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-28 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-29 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-30 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-05-31 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-06-01 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-06-02 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-06-03 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-06-04 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値 ('72164','Dictionary','2017-06-05 00:00:00','1') を挿入します。 
`testsign` (`userid`, `username`, `signtime`, `type`) に値を挿入します('800675','Wu Xiaoshuang サインインデータ','2017-05-21 00:00:00','0'); 
`testsign` (`userid`, `username`, `signtime`, `type`) に値を挿入します('800675','Wu Xiaoshuang サインインデータ','2017-05-22 00:00:00','0'); 
`testsign` (`userid`, `username`, `signtime`, `type`) に値を挿入します('800675','Wu Xiaoshuang サインインデータ','2017-05-23 00:00:00','0'); 
`testsign` (`userid`, `username`, `signtime`, `type`) に値を挿入します('800675','Wu Xiaoshuang サインインデータ','2017-05-24 00:00:00','0'); 
`testsign` (`userid`, `username`, `signtime`, `type`) に値を挿入します('800675','Wu Xiaoshuang サインインデータ','2017-05-25 00:00:00','0'); 
`testsign` (`userid`, `username`, `signtime`, `type`) に値を挿入します('800675','Wu Xiaoshuang サインインデータ','2017-05-26 00:00:00','0');

3. 継続的なサインインデータを照会する

SELECT * FROM testsign WHERE TYPE=0 AND 
 DATE_FORMAT(符号時刻,'%Y%m%d')>( 
 SELECT IFNULL(MAX(DATE_FORMAT(signtime,'%Y%m%d')),"20170520") FROM testsign WHERE TYPE=1 
 AND DATE_FORMAT(signtime,'%Y%m%d')<=DATE_ADD(NOW(), INTERVAL -1 DAY) 
 DATE_FORMAT(signtime,'%Y%m%d') が ( ではない 
    TYPE=0 かつ userid=800675 の場合、testsign から DATE_FORMAT(signtime,'%Y%m%d') を選択 
    ) 
 ) 
 AND DATE_FORMAT(signtime,'%Y%m%d')<='20170605' 
 かつユーザーID=800675

中断のないデータ

23日のデータを削除し、24日からカウントを開始し、3日連続で署名します

上記は、編集者が紹介した継続サインイン機能のMYSQL実装です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • SQLSERVERはログインしたユーザーのログイン時間を記録する(自作スクリプト)
  • MySQL で 2 つの日付間の連続ログイン日数の最大数を照会する方法
  • MySQL で 2 つの日付間の連続ログイン日数の最大数を照会する方法
  • ユーザーの連続ログイン日数を調べるSQLクエリステートメント

<<:  CentOS 7 で PHP 5.4 を 5.6 にアップグレードする方法の簡単な分析

>>:  Vue プロジェクト コード分割ソリューション

推薦する

ウェブデザインのグラフィック構成と組版機能の紹介

すべてには基礎が必要です。家を建てるには基礎が必要です。方程式を解くには、まず九九を覚える必要があり...

Vue バックエンド管理システムのページング機能の実装例

この記事では、主に Vue バックグラウンド管理システムのページング機能の実装を紹介し、次のように共...

MySQL の CPU 負荷が高い問題のトラブルシューティング

MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...

ウェブデザインにおけるポップアップウィンドウとフローティングレイヤーのデザイン

従来のソフトウェアから Web ウェアへの段階的な移行の傾向の中で、デザイン パターンとテクノロジは...

JS クロスドメイン XML - AS URLLoader を使用

最近、機能拡張の要件を受け取りました。ただし、新しい要件で参照されているデータインターフェイスは、X...

Centos7でmysql6の初期化インストールパスワードをインストールする方法

1. まずデータベースサーバーを停止しますサービスmysqld停止2.vim /etc/my.cnf...

MySQLインデックスが失敗するいくつかの状況の分析

1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...

MySQL の挿入およびバッチ ステートメントのいくつかの例の詳細な説明

目次序文1.無視を挿入2. 重複キーの更新時3. を置き換える4.存在しない場合は挿入する5. デー...

Vue のスロットリング関数使用時の落とし穴ガイド

序文一般的なビジネス シナリオでは、検索ボックスへの入力が完了した後、検索データを取得するために関連...

Nginx リバース プロキシを使用して go-fastdfs を実行する例

背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...

2時間のDocker入門チュートリアル

目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...

ウェブサイトのビジュアルデザインの重要なポイント

手工芸デザインからグラフィックデザイン、そしてウェブデザインまで、デザインの原則は同じままですが、私...

VMware Workstation のインストール Linux システム

始める段階から初心者になるまで、Linux オペレーティング システムは不可欠です。最初のステップは...

react-diagram シリアル化 Json 解釈 ケース分析

このドキュメントの目的はreact-diagramフレームワーク モデルの Json シリアル化を説...

Vite2.x に基づく Vue 3.x プロジェクトの実装

Vue 3.x プロジェクトの作成 npm init @vitejs/app my-vue-app ...