ホームページ >データベース >mysql チュートリアル >MySQL クエリで NULL 値をゼロに置き換えるにはどうすればよいですか?

MySQL クエリで NULL 値をゼロに置き換えるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 05:07:41566ブラウズ

How Can I Replace NULL Values with Zeroes in MySQL Queries?

MySQL での Null 値のゼロ化

MySQL では、データベース フィールドで null 値が発生することは珍しくありません。これらの null 値により計算が中断され、クリーンで正確なデータを表示することが困難になる可能性があります。この問題に対処するために、MySQL は IFNULL() 関数を提供します。この関数を使用すると、NULL 値を置き換える代替値を指定できます。

次のシナリオを考えてみましょう:

SELECT uo.order_id, uo.order_total, uo.order_status,
            (SELECT SUM(uop.price * uop.qty) 
             FROM uc_order_products uop 
             WHERE uo.order_id = uop.order_id
            ) AS products_subtotal,
            (SELECT SUM(upr.amount) 
             FROM uc_payment_receipts upr 
             WHERE uo.order_id = upr.order_id
            ) AS payment_received,
            (SELECT SUM(uoli.amount) 
             FROM uc_order_line_items uoli 
             WHERE uo.order_id = uoli.order_id
            ) AS line_item_subtotal
            FROM uc_orders uo
            WHERE uo.order_status NOT IN ("future", "canceled")
            AND uo.uid = 4172;

このクエリは順序を取得します。さまざまなテーブルからの情報。ただし、一部のフィールドには null 値が含まれる場合があります。これらのフィールドに対して null の代わりに 0 を返すには、次のように IFNULL() を使用します。

SELECT uo.order_id,
       IFNULL(uo.order_total, 0),
       uo.order_status,
       IFNULL(products_subtotal, 0),
       IFNULL(payment_received, 0),
       IFNULL(line_item_subtotal, 0)
       FROM uc_orders uo
       WHERE uo.order_status NOT IN ("future", "canceled")
       AND uo.uid = 4172;

この変更されたクエリでは、IFNULL() が null 値の影響を受けるすべてのフィールドに適用されます。フィールドが null でないかどうかをチェックします。そうであれば、実際の値を返します。それ以外の場合は、0 を返します。

この手法により、取得されたすべてのフィールドが null 以外の値を持つことが保証され、データの一貫性が高まり、操作が容易になります。

以上がMySQL クエリで NULL 値をゼロに置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。