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

推薦する

シンプルなウェブページレイアウトの構造と表現原理の共有

構造とパフォーマンスの紹介HTML 構造、CSS 表現、JavaScript 動作。Web ページの...

MYSQL ローカルインストールと問題解決

序文この記事はかなり詳細で、少し面倒です。他のチュートリアル ドキュメントでは多くの手順が省略されて...

MySQLでJSONフィールドを操作する方法

MySQL 5.7.8 では json フィールドが導入されました。このタイプのフィールドは使用頻度...

mysql8.0.11 winx64 手動インストールと設定チュートリアル

まず、私の日常生活についてお話しします。MySQLの急速なアップデートにより、MySQLはバージョン...

入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋なCSS

さらに興味深いコンテンツについては、https://github.com/abc-club/free...

KVM 仮想化のインストール、展開、管理のチュートリアル

目次1.kvmの展開1.1 kvmのインストール1.2 kvm Web管理インターフェースのインスト...

ウェブページを自動更新するための 3 つのコード

実際、この効果を実現するのは非常に簡単で、この効果は特殊効果と呼ぶことすらできません。次のコードを ...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

h5入力ボックスプロンプト+通常のテキストボックスプロンプトを実装する方法

XML/HTML コードコンテンツをクリップボードにコピー<入力 id = "ユーザ...

Vue ファースト スクリーン パフォーマンス最適化コンポーネントの知識ポイントの概要

Vue ファースト スクリーン パフォーマンス最適化コンポーネントVue ファースト スクリーン パ...

MySQLデータベースに他のIPアドレスからアクセスできない問題の解決策

序文先ほどのプロジェクトを参考にすると、環境は整いました。プロジェクトの準備と検証の段階で、問題が発...

Linux でのスケジュールされたタスクと遅延タスクの詳細な説明

で+ 時間 17:23に at> touch /mnt/file{1..9} ##アクションを...

Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明

目次序文1. 親コンポーネントが子コンポーネントに値を渡す2. サブコンポーネントのprops型制約...

MySQLのスケジュールタスクが正常に実行できない原因の分析と解決

目次序文原因分析と解決策スケジュールされたタスクを迅速に実行する要約する序文データベースのスケジュー...