ホームページ > データベース > mysql チュートリアル > MySQL 計算で NULL フィールドを処理するにはどうすればよいですか?

MySQL 計算で NULL フィールドを処理するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-04 07:24:34
オリジナル
558 人が閲覧しました

How to Handle NULL Fields in MySQL Calculations?

MySQL での NULL フィールドの処理

MySQL データベースからデータを取得する場合、一部のフィールドに NULL 値が含まれる可能性があることがよくあります。これは、数値データを必要とする計算や操作を実行する必要がある場合に問題を引き起こす可能性があります。

問題: 計算における NULL フィールド

次の SQL クエリを考えてみましょう。

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 値が含まれる場合、計算全体が影響を受け、不正確な結果が生じる可能性があります。

解決策: IFNULL() 関数

MySQL NULL 値を処理する IFNULL() 関数を提供します。この関数は、評価する式と、式が NULL の場合に返す値の 2 つの引数を取ります。たとえば、次のクエリは IFNULL() を使用して、小計が NULL の場合に常にゼロに設定されるようにします。

SELECT uo.order_id, uo.order_total, uo.order_status,
            IFNULL((SELECT SUM(uop.price * uop.qty) 
             FROM uc_order_products uop 
             WHERE uo.order_id = uop.order_id), 0) AS products_subtotal,
            IFNULL((SELECT SUM(upr.amount) 
             FROM uc_payment_receipts upr 
             WHERE uo.order_id = upr.order_id), 0) AS payment_received,
            IFNULL((SELECT SUM(uoli.amount) 
             FROM uc_order_line_items uoli 
             WHERE uo.order_id = uoli.order_id), 0) AS line_item_subtotal
            FROM uc_orders uo
            WHERE uo.order_status NOT IN ("future", "canceled")
            AND uo.uid = 4172;
ログイン後にコピー

IFNULL() を使用すると、すべての小計が有効であることを確認できます。対応するテーブルに NULL データが含まれている場合でも、数値。これにより、計算を実行して正確な結果を得ることができます。

以上がMySQL 計算で NULL フィールドを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート