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 バックエンドを使用して、一定期間内のデータをクエリする方法

推薦する

表示または可視性によってHTML要素を非表示にする

場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...

CSS 兄弟要素フローティング分析の概要

float:左/右/なし; 1. 同じレベルフローティング(1)ブロックレベル要素を同じ行に表示する...

Kubernetesでポッドを作成する方法

目次ポッドを作成するには? kubectl ツールポッドを作成するには?前回の記事では、コンテナとポ...

今日、今週、今月、先月のMySQLクエリデータ

今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...

ウェブページの内部アンカーポイントを実現するための純粋なCSSの上下オフセットコード例

最近、「フットボール ナビゲーション」Web サイトに取り組んでいるときに、上部の固定ナビゲーション...

Linux カーネル デバイス ドライバー システム コールに関する注意事項

/**************************** * システムコール**********...

jsは動的にテーブルを生成します(ノード操作)

この記事の例では、テーブルを動的に生成するjsの具体的なコードを参考までに共有しています。具体的な内...

複数のドメイン名、ポート、IP仮想ホストに基づくNginx構成

1. タイプの導入1.1 ドメインベースの仮想ホスティングいわゆるドメイン名ベースの仮想ホストとは、...

Vueプロジェクトの最適化とパッケージ化の詳細な説明

目次序文1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか? 2. ル...

MySQLの整数および文字列インデックスの無効化または暗黙的な変換に関する簡単な説明

目次問題の概要問題の再現問題の拡大結論は問題の概要今日、仕事中に、DBA が突然、SQL に暗黙的な...

XHTML 入門チュートリアル: フレーム タグの使用

<br />フレーム構造により、ブラウザの 1 ページに複数の Web ページを同時に表...

Linux mysql5.5 を mysql5.7 にアップグレードする手順と落とし穴

目次Linux MySQL 5.5 が MySQL 5.7 にアップグレードされました1. mysq...

フロントエンドタスク構築のための強力なツールであるGulp.jsの使い方を詳しく説明します

目次概要Gulp.jsをインストールするGulp.jsを使用してプロジェクトを作成するgulpfil...

CSS を使用して同じ親タグの左側と右側に 2 つのボタンを配置する方法

この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...