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 プロジェクト コード分割ソリューション

推薦する

DockerとDocker-Composeの使用例

Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテナ エンジンです...

MySQL における楽観的ロックと悲観的ロックの例

データベース管理システムにおける同時実行制御のタスクは、データベース内の同じデータに同時にアクセスす...

jQueryは画像追従効果を実現します

この記事では、画像フォロー効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

CentOS 7.5 が Varnish キャッシュサーバー機能を導入

1. ワニスの紹介Varnish は、高性能なオープンソースのリバースプロキシサーバーおよび HTT...

コードレイン効果を実現するjQueryプラグイン

この記事では、コードレイン特殊効果を実現するためのjQueryプラグインの具体的なコードを参考までに...

重複したMySQLテーブルをマージして削除する簡単な方法

シナリオ:クロールされたデータは、別のメインテーブルと同じ構造を持つデータテーブルを生成するため、マ...

JavaScriptの構文とコード構造に関する深い理解

目次概要機能性と読みやすさ空白括弧セミコロンインデント身元大文字と小文字を区別予約キーワード概要すべ...

フロントエンド開発者は毎日HTMLタグの理解を学ばなければならない(1)

2.1 セマンティクス化により、Webページが検索エンジンに理解されやすくなりますこの章では、We...

CentOS6.7 mysql5.6.33 でデータファイルの場所を変更する方法

問題: MySQL がデータ ファイルを保存するパーティションの容量が小さく、現在いっぱいになってい...

Reactイベントメカニズムソースコード分析

目次原理ソースコード分析委任されたイベントバインディングすべてのサポートされているイベントを聴くネイ...

njs モジュールを使用して nginx 構成に js スクリプトを導入する

目次序文1. NJSモジュールをインストールする方法1: NJSモジュールを動的にロードする方法2:...

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

vue+element カスタムクエリコンポーネント

この記事では主に Vue プロジェクトを紹介します。要素の導入を前提として、コンポーネントを 2 回...

Dockerネットワーク作成に--subnetを追加した後の問題を解決する

Docker ネットワークの作成に –subnet を追加した後、docker network ls...

CentOS7 環境で gcc (バージョン 10.2.0) をアップグレードする詳細な手順

目次簡単な紹介1. 現在のgccバージョンを確認する2. gccインストールパッケージ(バージョン1...