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 の動的データバインディングのケーススタディ

推薦する

Linux システムの busybox に mkfs.vfat コマンドを移植する

オーディオおよびビデオ ファイルを保存するためのディスク寿命を延ばすには、ディスクをフォーマットする...

JavaScript が重複したネットワークリクエストを防ぐ方法の例

序文開発中は、インターフェース要求の繰り返しによってさまざまな問題が発生することがよくあります。ネッ...

vue プロジェクトで rem を使用して px を置き換える例

目次道具プラグインをインストールするプロジェクトのルートディレクトリに.postcssrc.jsファ...

CSS3 で高さと幅を不定にして垂直と水平に中央揃えするいくつかの方法

1. フレックスレイアウト 。父親 { ディスプレイ: フレックス; コンテンツの中央揃え: 中央;...

JavaScript で長い画像のスクロール効果を実装する

この記事では、JavaScriptの長い画像スクロールの具体的なコードを参考までに共有します。具体的...

MySQL のダウンロードとインストールの詳細グラフィックチュートリアル

1. MySQLデータベースをダウンロードするには、公式Webサイトにアクセスしてください:http...

CocosCreator MVCアーキテクチャの詳細な説明

概要この記事では、ゲームクライアントでよく使用される MVC アーキテクチャについて紹介します。ゲー...

Kubernetes を使用して Springboot または Nginx をデプロイするための詳細なチュートリアル

1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...

マインドマップを使って4つの側面からWeb標準の価値を議論する

このアイデアを改善し、より良い意見を得られることを期待して、議論を刺激するためにいくつかの値を大まか...

Vueのライフサイクルについて詳しく説明します

目次序文1. Vue2 のライフサイクルインスタンスのライフサイクルその他のライフサイクルフック2....

psdカット画像をdiv+css形式に変換する

PSD から div css へのウェブページ切り取り例ステップ 1: まず、すべてのタグの内側と外...

JavaScript のマイクロタスクとマクロタスクの説明

序文: js はシングルスレッド言語なので、非同期にすることは不可能です。しかし、js のホスト環境...

Vueにログイン認証傍受機能を設置するアイデアを詳しく解説

目次1. 解決策2. サーバーから返されたトークンをブラウザに保存する3. リクエストにアクセス権限...

MySQL バッチ挿入とユニークインデックスの問題に対する解決策

MySQL バッチ挿入の問題プロジェクトを開発しているときに、古いシステムの基本データを事前にインポ...

MySQLとOracleの違いを簡単に説明してください

1. Oracle は大規模データベースですが、MySQL は小規模から中規模のデータベースです。O...