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 を使用する場合の落とし穴の概要

推薦する

auto.jsを使用して毎日の自動チェックイン機能を実現する

auto.js を使用して毎日のチェックインを自動化する感染症のせいで、毎日時間通りに家に帰らなけれ...

一般的な MySQL 関数の例の概要 [集計関数、文字列、数値、時刻と日付の処理など]

この記事では、よく使用される MySQL 関数について説明します。ご参考までに、詳細は以下の通りです...

RedisとMemcacheの比較と選び方

最近 redis を使っていて、とても便利だと感じているのですが、インメモリ データベースを選択する...

MySQL データベースのインストールと Navicat for MySQL の使用に関するチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

Explainキーワードに基づいてMySQLインデックス機能を最適化する方法

EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合す...

Vue3 の使用 (パート 1) Vue CLI プロジェクトの作成

目次1. 公式ドキュメント2. Vue CLIプロジェクトを作成する1. Vue CLIをインストー...

MySQL の時間保持問題に関する簡単な分析

MySQL のデフォルトの時間タイプ (datetime と timestamp) の精度は秒です。...

MySQL の遅いクエリを見つける方法

序文誰もが日常業務で SQL の最適化を経験したことがあると思います。したがって、最適化の前に、遅い...

HTML のテキストエリアの改行問題の概要

最近、Textrea に転送したときに、データが本当に行ごとに保存できるかどうかという問題に遭遇しま...

モバイルフロントエンド適応ソリューション(概要)

ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...

vue3.0 のウォッチ リスナーの例の詳細な説明

目次序文リスナーと計算プロパティの違いvue3 で watch を使用するにはどうすればいいですか?...

Nginx 構成 SSL および WSS 手順の紹介

目次序文1. Nginxのインストール1. Nginxをダウンロードする2. 依存関係をインストール...

この記事では、6つの負荷分散技術の実装方法をまとめます(要約)

ロード バランシングは、サーバー クラスタの展開でよく使用されるデバイスです。マシンのパフォーマンス...

Ubuntu の起動後にアプリケーションを実行するためのターミナルの設定方法

1.メニューバーにスタートと入力し、スタートアップアプリケーションをクリックして入力します。 2. ...

Vue+Spring Bootで検証コード機能を実現

この記事では、検証コード機能を実装するためのvue+spring bootの具体的なコードを例として...