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はプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

テキスト ファイルの並べ替えに役立つ Awk コマンドラインまたはスクリプト (推奨)

Awk は、ソートを含む他の一般的なユーティリティによって実行できるいくつかのタスクを実行できる強...

ネイティブ JavaScript 継承方法とその長所と短所の詳細な説明

目次序文プロトタイプ継承アドバンテージ欠点コンストラクタの継承アドバンテージ欠点組み合わせ継承寄生的...

Vue プロジェクトがページング効果を実現

ページング効果は、参考までにvueプロジェクトに実装されています。具体的な内容は次のとおりです。 1...

MySQL Innodbインデックスの原理の詳細な説明

導入振り返ってみると、4年前、私がMySQLのインデックスについて学んでいたとき、先生はインデックス...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

uniapp パッケージ化されたアプレット レーダー チャート コンポーネントの完全なコード

効果画像:実装コードは以下のとおりですビュー <canvas id="radar-c...

MySQLの累積集計原理と使用例の分析

この記事では、例を使用して、MySQL 累積集計の原理と使用方法を説明します。ご参考までに、詳細は以...

Docker で Confluence をデプロイする

1. 環境要件1. Docker 17以上がインストールされている2. コンテナ操作docker r...

CSS ペイント API: CSS のような描画ボード

1. Canvas画像をCSS背景画像として使用するCSS ペイント API は、Canvas キャ...

Vue3でカルーセルコンポーネントをカプセル化する方法

目的カルーセルコンポーネントをカプセル化して直接使用します。具体的な内容は以下のとおりです。一般的な...

Ubuntu 18.04 システムでの Redis および phpredis 拡張機能のインストールと設定の詳細な説明

この記事では、Ubuntu 18.04 に Redis と phpredis 拡張機能をインストール...

vue-element-adminフレームワークを使用して、バックエンドからメニュー機能を動的に取得します。

目次2. 詳しい説明2.1. asyncRoutesルーティングを追加する2.2. 新しいpermi...

VScode リモート SSH リモート編集とデバッグコード

Visual Studio Code の最新の Insider バージョンには、コードのリモート デ...

HTML の META タグの使用に関するヒントの例

HTML メタタグHTML メタタグは、Web ページのコンテンツに関する情報をブラウザや検索エンジ...