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

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-04 16:33:46293ブラウズ

How Can I Replace NULL Fields with Zeros in MySQL Queries?

MySQL で Null フィールドをゼロに設定する

MySQL では、Null 値の処理が困難になることがよくあります。データをクエリする場合、null フィールドの代わりに null 以外の値を返すと便利な場合があります。これは、null 値が計算を歪めたり、結果の読みやすさに影響を与えたりする可能性がある場合に特に当てはまります。

null フィールドをゼロに設定するには、IFNULL() 関数を使用できます。 IFNULL() は、評価される式と、式が null の場合に返す値の 2 つの引数を取ります。例:

IFNULL(expr1, 0)

expr1 が null でない場合、IFNULL() は expr1 を返します。それ以外の場合は、0 を返します。これにより、null 値をゼロなどの指定した値に簡単に置き換えることができます。

提供されたクエリでは、IFNULL() を使用して products_subtotal、payment_received の null 値を処理できます。 、および line_item_subtotal フィールド。変更されたクエリは次のとおりです。

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 値に対して 0 を返すようになり、結果の一貫性が確保され、解釈が容易になります。

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

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