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

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

Barbara Streisand
Lepaskan: 2025-01-04 16:33:46
asal
258 orang telah melayarinya

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

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

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

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!

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