Tetapkan Medan Null kepada Sifar dalam MySQL
Pertanyaan MySQL ini bertujuan untuk mendapatkan semula data daripada pelbagai jadual, termasuk jadual uc_orders (uo). Walau bagaimanapun, keputusan mengandungi medan nol, yang dikehendaki untuk dikembalikan sebagai sifar.
Untuk mencapai ini, fungsi IFNULL boleh digunakan dalam subkueri:
SELECT uo.order_id, IFNULL(uo.order_total, 0) AS 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;
Fungsi IFNULL pada asasnya menyemak sama ada ungkapan yang dinilai adalah batal. Jika ya, nilai sandaran yang ditentukan (0 dalam kes ini) dikembalikan sebaliknya. Ini memastikan bahawa pertanyaan akan sentiasa mengembalikan sifar untuk medan nol.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Medan NULL dengan Sifar dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!