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;
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;
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!