MySQL NULLデータ変換方法(必読)

MySQL NULLデータ変換方法(必読)

MySQL を使用してデータベースをクエリし、左結合を実行すると、関連付けられたフィールドの一部にNULLコンテンツが含まれます。そのため、レコード セットを取得した後、NULL データを変換する必要があります。

この記事では、クエリ時に直接変換処理を実行する方法について説明します。取得したレコード セットを再度変換する必要はありません。

mysqlはIFNULL関数を提供する

IFNULL(式1, 式2)

IFNULL() は、expr1 が NULL でない場合は expr1 を返し、それ以外の場合は expr2 を返します。

例:

ユーザーテーブルの構造とデータ

+----+-----------+
| ID | 名前 |
+----+-----------+
| 1 | アビー |
| 2 | デイジー |
| 3 | クリスティン |
+----+-----------+

user_lastlogin テーブルの構造とデータ

+-----+---------------+
| uid | 最終ログイン時刻 |
+-----+---------------+
| 1 | 1488188120 |
| 3 | 1488188131 |
+-----+---------------+

ユーザー名と最終ログイン時間を照会する

mysql> a.id、a.name、b.lastlogintime を user から a として選択し、 user_lastlogin を b として a.id=b.uid に結合します。

+----+-----------+---------------+
| ID | 名前 | 最終ログイン時刻 |
+----+-----------+---------------+
| 1 | アビー | 1488188120 |
| 2 | デイジー | NULL |
| 3 | クリスティン | 1488188131 |
+----+-----------+---------------+

id=2 のユーザーは一度もログインしたことがないため、user_lastlogin テーブルにはレコードがありません。したがって、lastlogintime は NULL です。

IFNULLを使用してNULLを0に変換する

IFNULL(最終ログイン時間, 0)
mysql> a.id、a.name、IFNULL(b.lastlogintime、0) を lastlogintime として選択し、user を a として左から join user_lastlogin を b として a.id=b.uid に結合します。
+----+-----------+---------------+
| ID | 名前 | 最終ログイン時刻 |
+----+-----------+---------------+
| 1 | アビー | 1488188120 |
| 2 | デイジー | 0 |
| 3 | クリスティン | 1488188131 |
+----+-----------+---------------+

上記のMySQLのNULLデータ変換に関する記事(必読)は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQLのNULL値の詳しい説明
  • MySQL の NOT IN 充填ピットの NULL 列の問題の解決方法
  • MySQL NULL値処理例の詳細な説明
  • MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ

<<:  Nginxのアクセス制限設定の詳細な説明

>>:  Vue フロントエンドと Django バックエンドを使用して、一定期間内のデータをクエリする方法

推薦する

Dockerにelasticsearchとkibanaをインストールする方法

Elasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを知らないと軽蔑...

JavaScript の useRef と useState の紹介

目次1. useStateフック2. useRefフック3. useRef と useState 4...

ウェブ クラスターの Docker Stack 展開方法の手順

Docker はますます成熟し、その機能もますます強力になっています。 Docker Stack を...

CnBlogs カスタムブログスタイルの共有

半夜かけてようやくブログのスタイルを大体完成させることができました。ブログ全体が青を基調としていて、...

HTML相対パスの親ディレクトリと子ディレクトリの書き方

親ディレクトリを指定する方法../ はソース ファイルの親ディレクトリを表し、../../ はソース...

Linuxでmore、less、catコマンドを使用してファイルの内容を表示します

Linux では、cat、more、less の各コマンドを使用してファイルの内容を表示できます。c...

Linux のさまざまなロックメカニズムの使用方法と違いについて詳しく説明します

序文:この知識を理解する必要がある人は、すでにプロセス間通信とスレッド間通信の基本的な理解を持ってい...

Vueは携帯電話のカメラとアルバムを呼び出す機能を実装します

この記事では、携帯電話のカメラとアルバムにアクセスするためのVueの具体的なコードを参考までに共有し...

CocosCreatorでスワイプした位置にテクスチャを表示する方法

目次1. プロジェクト要件2. 文書の内容3. プロジェクト例4. プロジェクトコード1. プロジェ...

MySQL InnoDB ストレージエンジンのメモリ管理の詳細な説明

目次ストレージエンジンのメモリ管理データ ページを LRU キューの先頭に置かないのはなぜですか?ダ...

dockerでredis5.0.3をインストールする方法

1. 公式5.0.3イメージを取得する [root@localhost ~]# docker pul...

Mysql でよく使用される時間、日付、変換関数の概要

この記事では、主に実際のアプリケーションでよく使用されるMySQLの時刻と日付、および変換関数につい...

Linux の一般的な Java プログラム起動スクリプトのコード例

シェルを起動する頻度は非常に低いですが。 。 。しかし、書くたびに、多くの jar ファイル パスを...

MySQL データ挿入最適化メソッドconcurrent_insert

スレッドがテーブルに対して DELAYED ステートメントを実行するときに、そのようなハンドラーが存...

モバイル開発における 1px ラインの理解と解決策

1pxの線が太くなる理由モバイルプロジェクトに取り組むとき、設計図に従って要素ノードのサイズとスタイ...