MySQL の nvl() 関数に似た ifnull() 関数についての簡単な説明

MySQL の nvl() 関数に似た ifnull() 関数についての簡単な説明

IFNULL(式1,式2)

expr1 が NULL でない場合、IFNULL() は expr1 を返し、それ以外の場合は expr2 を返します。 IFNULL() は、使用されるコンテキストに応じて数値または文字列値を返します。

mysql> IFNULL(1,0); を選択します。
    -> 1
mysql> IFNULL(0,10) を選択します。
    -> 0
mysql> IFNULL(1/0,10) を選択します。
    -> 10
mysql> IFNULL(1/0, 'yes') を選択します。
    ->「はい」
 
IF(式1,式2,式3)

expr1 が TRUE (expr1<>0 かつ expr1<>NULL) の場合、IF() は expr2 を返し、それ以外の場合は expr3 を返します。 IF() は、使用されるコンテキストに応じて数値または文字列値を返します。

mysql> IF(1>2,2,3) を選択します。
    -> 3
mysql> IF(1<2,'はい','いいえ'); を選択します。
    ->「はい」
mysql> IF(strcmp('test','test1'),'yes','no') を選択します。
    -> 'いいえ'

expr1 は整数値として評価されます。つまり、浮動小数点値または文字列値をテストする場合は、比較演算子を使用する必要があります。

mysql> IF(0.1,1,0); を選択します。
    -> 0
mysql> IF(0.1<>0,1,0); を選択します。
    -> 1

上記の最初のケースでは、0.1 が整数値に変換され、テスト IF(0) の結果となるため、IF(0.1) は 0 を返します。これはあなたが期待していたものではないかもしれません。 2 番目のケースでは、比較によって元の浮動小数点値がゼロ以外であるかどうかがテストされ、比較の結果が整数として使用されます。

CASE 値 WHEN [比較値] THEN 結果 [WHEN [比較値] THEN 結果 ...] [ELSE 結果] END 
  
CASE WHEN [条件] THEN 結果 [WHEN [条件] THEN 結果 ...] [ELSE 結果] END 

最初のバージョンは、値 = 比較値である結果を返します。 2 番目のバージョンは、最初の条件が true の場合に結果を返します。一致する結果値がない場合、ELSE の後の結果が返されます。 ELSE 部分がない場合、NULL が返されます。

mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
    -> 「1」
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
    -> 「本当」
mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
-> NULL

上記は、nvl() 関数に似た MySQL の ifnull() 関数についての簡単な説明です。私が皆さんに伝えたいのはこれだけです。皆さんの参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • MySql における無効な Null セグメント判定と IFNULL() 失敗の解決策
  • MySQL IFNULL判定問題の解決方法
  • MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ
  • MySQL で null を置き換える IFNULL() および COALESCE() 関数の詳細な説明
  • MySql での IFNULL、NULLIF、ISNULL の使用法の詳細な説明
  • SQL Server の ISNULL 関数と MySQL の IFNULL 関数の使用法について簡単に説明します。
  • MySQL の IFNULL、IF、CASE の違いの紹介
  • MySQL ifnull のネスト使用手順

<<:  Ubuntu 16.04 で PostgreSQL の起動を設定する方法

>>:  Vue での this.$set の動的データバインディングのケーススタディ

推薦する

ナビゲーションバーコンポーネントをVueでカプセル化する

はじめに:ナビゲーション バーなどのコンポーネント ベースのアイデアを使用して機能モジュールを完全に...

Linux デスクトップ用に Openbox を設定する方法 (推奨)

この記事は、「24 Days of Linux Desktop」の特別シリーズの一部です。 Open...

JavaScript におけるイベント委譲メカニズムと深いコピーと浅いコピーの簡単な分析

目次1. イベントの委任イベントバブリングイベントキャプチャイベントの泡立ちの昇華考える2. 深いコ...

LAMP ソースコードを使用したエンタープライズレベルのインストールチュートリアル

目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...

MySQL 8の新機能ROLEの詳しい説明

MySQL ROLE はどのような問題を解決しますか?プロフェッショナルな資質を持ち、権限管理に細心...

知っておくべき JS 配列削減の高度な使い方 25 選

序文Reduce は ES5 で追加された新しい従来の配列メソッドの 1 つです。forEach、f...

MySQL の非主キー自己増分使用例の分析

この記事では、例を使用して、MySQL の非主キーの自己増分の使用方法を説明します。ご参考までに、詳...

JavaScript の絶妙なスネーク実装プロセス

目次1. HTML構造を作成する2. テーブルを作成する3. ヘビの頭と体を作る4. 食べ物を作る5...

Linux システムで MySQL の文字セットを UTF8 に変更する手順

目次1. データベース内の MySQL ステータスを確認します。 2. 設定ファイルを変更します。 ...

npmとcnpmを混在させる際の落とし穴の詳細な説明

目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...

MySQLで時間を判定条件として使用する方法

背景: 開発プロセスでは、現在の月、現在の日、現在の時間、今後数日など、時間を判断条件としてデータを...

ウェブページ内の 2 つのボックス モデル (W3C ボックス モデル、IE ボックス モデル)

Web ページ ボックス モデルには 2 種類あります。 1: 標準 W3C ボックス モデル。2:...

Docker Consul コンテナ サービスの更新と見つかった問題の概要

目次1. コンテナサービスの更新とDockerコンサルの検出1. サービス登録と検出とは何ですか? ...

DockerコンテナがSongtiなどのフォントを認識しない場合の解決策

問題の背景: docker を使用してプロジェクトをデプロイする場合、プロジェクト内で印刷コントロー...

Windows (x86、64 ビット) で MySQL 5.7.17 無料インストール バージョンをアップグレードするための詳細なチュートリアル

Laravel 5.4 のデフォルトの utf8mb64 文字エンコーディングをサポートするには、M...