MySQL の IFNULL 関数を使用して null 値の問題に対処する方法

WBOY
リリース: 2023-07-25 12:25:13
オリジナル
3778 人が閲覧しました

MySQL の IFNULL 関数を使用して null 値の問題に対処する方法

日常のデータベース操作では、null 値 (NULL) が処理される状況によく遭遇します。 MySQL には NULL 値を処理するための関数が多数用意されており、その中でも IFNULL 関数は非常によく使用される関数です。この記事では、MySQL での NULL 値の問題に対処するために IFNULL 関数を使用する方法を紹介し、いくつかの使用例を示します。

1. IFNULL 関数の基本的な使い方

IFNULL 関数は、MySQL で null 値を扱うために使用される関数です。 2 つのパラメータを受け入れます。最初のパラメータは判定対象の値、2 番目のパラメータは最初のパラメータが null の場合の置換値です。

構文は次のとおりです:

IFNULL(expr1, expr2)
ログイン後にコピー

このうち、expr1 が判定対象の値であり、この値が null の場合は expr2 を返します。それ以外の場合は、expr1 自体を返します。

例:

SELECT IFNULL(NULL, '替代值');
-- 结果为 '替代值'
ログイン後にコピー

2. IFNULL 関数を使用して null 値の問題に対処する例

次に、いくつかの一般的なアプリケーション シナリオと、IFNULL 関数を使用して次のことを行う例を示します。 null 値の問題に対処します。

1. クエリ結果の null 値を固定値に置き換える

データベースのクエリ中に、場合によっては null 値が発生し、その後のデータ分析で誤解を招く可能性があります。 . . IFNULL 関数を使用すると、これらの null 値を固定値に置き換えることができます。

例:
次のデータ テーブルがあるとします。students:

+----+-------+--------+
| id | name  | score  |
+----+-------+--------+
|  1 | 小明  |   90   |
|  2 | 小红  |  NULL  |
|  3 | 小刚  |   85   |
+----+-------+--------+
ログイン後にコピー

students の score## を変更したいとします。 table #列の null 値を 0 に置き換えるには、次のクエリ ステートメントを使用できます:

SELECT id, name, IFNULL(score, 0) AS score FROM students;
ログイン後にコピー

クエリの結果は次のとおりです:

+----+-------+-------+
| id | name  | score |
+----+-------+-------+
|  1 | 小明  | 90    |
|  2 | 小红  | 0     |
|  3 | 小刚  | 85    |
+----+-------+-------+
ログイン後にコピー

2. null 値を除外します。平均を計算する場合

列の平均を計算する場合、Null 値は計算に含まれません。 IFNULL 関数を使用すると、null 値を 0 に置き換え、条件文を通じてこれらの null 値を除外できます。

例:

次のデータ テーブル
sales があるとします。

+----+-------+--------+
| id | month | amount |
+----+-------+--------+
|  1 |   1   |   100  |
|  2 |   2   |  NULL  |
|  3 |   3   |   150  |
+----+-------+--------+
ログイン後にコピー

sales の amount## を計算したいとします。 table #null 値を除いた列の平均値。次のクエリ ステートメントを使用できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:sql;toolbar:false;'>SELECT IFNULL(SUM(amount), 0) / COUNT(IFNULL(amount, 0)) AS avg_amount FROM sales;</pre><div class="contentsignin">ログイン後にコピー</div></div>クエリの結果は次のとおりです:

+------------+
| avg_amount |
+------------+
|   125      |
+------------+
ログイン後にコピー

3. 使用します。ネストされたクエリで null 値を処理するための IFNULL 関数

ネストされたクエリを実行すると、サブクエリの結果に null 値が表示されることがあります。 IFNULL 関数を使用してこれらの null 値を処理し、結果をより安定させることができます。

例:

次のデータ テーブルがあるとします。

products
:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:sql;toolbar:false;'>+----+---------+ | id | price | +----+---------+ | 1 | 10 | | 2 | NULL | | 3 | 20 | +----+---------+</pre><div class="contentsignin">ログイン後にコピー</div></div>

products

テーブル内の製品をクエリしたいとします。価格が平均価格リストより低い場合、null 値を 0 に置き換えると、次のクエリ ステートメントを使用できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:sql;toolbar:false;'>SELECT id, IFNULL(price, 0) AS price FROM products WHERE IFNULL(price, 0) &lt; (SELECT IFNULL(AVG(price), 0) FROM products);</pre><div class="contentsignin">ログイン後にコピー</div></div>クエリの結果は次のとおりです:

+----+-------+
| id | price |
+----+-------+
|  1 | 10    |
|  3 | 20    |
+----+-------+
ログイン後にコピー

概要:

この記事では、MySQL の使用方法を紹介します。IFNULL 関数は null 値の問題を処理し、いくつかの使用例を示します。 IFNULL関数を合理的に使用することで、Null値をより柔軟に扱うことができ、データ分析の精度と安定性が向上します。実際の操作で NULL 値の問題が発生した場合は、IFNULL 関数を使用して問題を解決することができます。

以上がMySQL の IFNULL 関数を使用して null 値の問題に対処する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!