Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggantikan Medan NULL dengan Sifar dalam Pertanyaan MySQL?
Menetapkan Medan Null kepada Sifar dalam MySQL
Dalam MySQL, pengendalian nilai nol selalunya boleh menjadi satu cabaran. Apabila menanyakan data, ia boleh berguna untuk mengembalikan nilai bukan nol sebagai ganti medan nol. Ini benar terutamanya dalam kes di mana nilai nol boleh memesongkan pengiraan atau menjejaskan kebolehbacaan keputusan.
Untuk menetapkan medan nol kepada sifar, fungsi IFNULL() boleh digunakan. IFNULL() mengambil dua hujah: ungkapan untuk dinilai dan nilai untuk dikembalikan jika ungkapan itu batal. Contohnya:
IFNULL(expr1, 0)
Jika expr1 bukan null, IFNULL() mengembalikan expr1. Jika tidak, ia mengembalikan 0. Ini membolehkan anda dengan mudah menggantikan nilai nol dengan nilai yang ditentukan, seperti sifar.
Dalam pertanyaan yang diberikan, IFNULL() boleh digunakan untuk mengendalikan nilai nol dalam produk_subtotal, pembayaran_diterima , dan medan line_item_subtotal. Berikut ialah pertanyaan yang diubah suai:
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;
Dengan memasukkan IFNULL(), pertanyaan itu kini akan mengembalikan 0 untuk sebarang nilai nol dalam medan yang ditentukan, memastikan keputusannya konsisten dan mudah ditafsirkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Medan NULL dengan Sifar dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!