MySql の null 関数の使用の共有

MySql の null 関数の使用の共有

MySql の null に関する関数

IFNULL

ISNULL

NULLIF

IFNULL

使用法: IFNULL(expr1,expr2)

説明: expr1 が null でない場合は expr1 を返し、そうでない場合は expr2 を返します。

例:

SQL文結果
SELECT IFNULL(null,'最初のパラメータはnullです') 「最初のパラメータは null です」
SELECT IFNULL('最初のパラメータは null ではありません', '私は 2 番目のパラメータです') 「最初のパラメータは null ではありません」

NULL です

使用法: ISNULL(expr)

説明: expr が null の場合は 1 を返し、それ以外の場合は 0 を返します。

例:

SQL文結果
SELECT ISNULL(null) 1
SELECT ISNULL('NULLではないパラメータ') 0

NULLIF

使用法: NULLIF(expr1,expr2)

説明: expr1 が expr2 と等しい場合は null を返します。それ以外の場合は exp1 を返します。 CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END に似ています。

例:

SQL文結果
NULLIF(1,1)を選択しますヌル
NULLIF(1,2)を選択します1

MySql 関数 IFNULL の使用に関する注意事項

まず、SQL文操作用の簡単なテーブルを作成します。

テーブル作成ステートメントは次のとおりです。

テーブル「学生」を作成(
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主キー' ,
`name` varchar(8) 文字セット utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'Name' ,
`score` int(4) NOT NULL DEFAULT 0 COMMENT 'score' ,
主キー (`id`)
);

次のように手動でデータを作成します。

さて、本題に入りましょう。

a. IFNULL の機能は何ですか?以下は、単純な SQL ステートメントと結果です。IFNULL(a,b) の場合、a が受け取った値が null であれば b が返され、それ以外の場合は a が返されます。

IFNULL(NULL,0)を選択します。

b. 次の SQL ステートメントの結果を予測できます。IFNULL 関数の機能によれば、0 を返すはずですが、結果はこのようになりません。

SELECT IFNULL(score,0) FROM student WHERE ID = 4;

返された結果は null であり、期待される結果 0 と一致しません。

c. 次のステートメントは正しい結果 0 を返します。

SELECT IFNULL((SELECT score FROM student WHERE ID = 4),0);

要約:

方法 b を使用して IFNULL、SUM 関数などを使用する場合は、クエリ レコードが存在することを確認する必要があります。存在しない場合は、null 値が返されます。もちろん、方法 c を使用して、null 値が返されることを回避し、プログラムで NPE 例外を回避することもできます。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数
  • この記事ではMySQLのNULLについて説明します。
  • MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ
  • mysql IS NULL インデックスケースの説明を使用する
  • MySQLでディスクにNULL値を保存する

<<:  Firefox ブラウザでバックグラウンド ミュージックを再生するための究極のソリューション (Chrome マルチブラウザ対応)

>>:  grpc のリバース プロキシとして nginx を使用する場合の落とし穴の概要

推薦する

JavaScript の 50 以上のユーティリティ関数の概要

JavaScript は多くの素晴らしい機能を備えています。この記事では、作業効率の向上とコードのデ...

ウェブサイトに天気予報を挿入する方法

天気予報をウェブサイトに挿入すると、次のような効果が得られます。次のコードを挿入する必要があります:...

Linux システムでのスケジュールされたタスクの紹介

目次1. 計画タスクをカスタマイズする2. 時間を同期する3. 練習する4. セキュリティの問題1....

Windows で mysql-8.0.18-winx64 をインストールするチュートリアル (画像とテキスト付き)

1. インストールパッケージをダウンロードするインストール パッケージは次の場所にあります:参考:...

Dockerはdockerfileを使用してnode.jsアプリケーションを起動します

Dockerfileの作成expressによって自動的に作成されたディレクトリを例にとると、ディレク...

HTTP サーバーとクライアントのやり取りをシミュレートする Node.js+postman

目次1. NodeがHTTPサーバーを構築する2. HTTPサーバーがリクエストを取得する1. Po...

Vue+Vantはトップ検索バーを実装します

この記事では、参考までに、Vue+Vant のトップ検索バーを実装するための具体的なコードを紹介しま...

Vue 組み込みコンポーネントのキープアライブでの LRU アルゴリズムの使用

目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...

React 並行関数エクスペリエンス (フロントエンド並行モード)

React は、開発者が Web およびモバイルベースのアプリケーションを作成するために使用するオ...

Linux での Firewalld の高度な設定の使用に関する詳細な説明

IPマスカレードとポート転送Firewalldは2種類のネットワークアドレス変換をサポートしています...

VMware Workstation のインストール (Linux カーネル) Kylin グラフィック チュートリアル

この記事では、VMware WorkstationにKylinをインストールする方法を参考までに紹介...

jQueryで大画面スクロール再生効果を実現

この記事では、大画面スクロール効果を実現するためのjQueryの具体的なコードを参考までに紹介します...

MAC で Mysql5.7.10 のルートパスワードを変更する方法

まず、MySQLをskip-grant-tablesモードで起動します: mysqld --skip...

検索データ表示を実装するJavaScript

この記事ではJavaScript検索のデータ表示コードを参考までに共有します。具体的な内容は以下のと...

Dockerリンクはコンテナの相互接続を実現します

目次1.1. IP経由のコンテナ間のネットワークアクセス1.2. コンテナ名またはコンテナIDによる...