Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggantikan Nilai NULL dengan Sifar dalam Pertanyaan MySQL?

Bagaimanakah Saya Boleh Menggantikan Nilai NULL dengan Sifar dalam Pertanyaan MySQL?

Linda Hamilton
Lepaskan: 2025-01-05 05:07:41
asal
556 orang telah melayarinya

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

Sifarkan Nilai Null dalam MySQL

Dalam MySQL, ia adalah perkara biasa untuk menemui nilai nol dalam medan pangkalan data. Nilai nol ini boleh mengganggu pengiraan dan menjadikannya mencabar untuk memaparkan data yang bersih dan tepat. Untuk menangani isu ini, MySQL menawarkan fungsi IFNULL(), yang membolehkan anda menentukan nilai alternatif untuk menggantikan nilai nol.

Pertimbangkan senario berikut:

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;
Salin selepas log masuk

Pertanyaan ini mendapatkan semula pesanan maklumat daripada pelbagai jadual. Walau bagaimanapun, sesetengah medan mungkin mengandungi nilai nol. Untuk mengembalikan 0 dan bukannya null untuk medan ini, anda boleh menggunakan IFNULL() seperti berikut:

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;
Salin selepas log masuk

Dalam pertanyaan yang diubah suai ini, IFNULL() digunakan pada semua medan yang terdedah kepada nilai null. Ia menyemak sama ada medan itu tidak batal; jika ya, ia mengembalikan nilai sebenar. Jika tidak, ia mengembalikan 0.

Teknik ini memastikan semua medan yang diambil akan mempunyai nilai bukan nol, menjadikan data lebih konsisten dan lebih mudah untuk digunakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Nilai NULL dengan Sifar dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan