Menentukan Keterlihatan Produk dalam MySQL Menggunakan CASE atau IF/ELSE
Dalam senario di mana keterlihatan produk ditentukan oleh kawasan yang ditentukan pengeluar, anda mungkin menghadapi keperluan untuk mengira secara dinamik wilayah yang boleh dilihat untuk setiap produk berdasarkan statusnya (baru atau terpakai) dan tetapan wilayah yang sepadan ditentukan oleh pengilang. Ini boleh dicapai menggunakan pernyataan CASE atau IF/ELSE dalam MySQL.
Pendekatan Penyata CASE:
SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, CASE status WHEN 'New' THEN t2.expose_new WHEN 'Used' THEN t2.expose_used ELSE NULL END as 'expose' FROM `products` t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238
Dalam pertanyaan ini, pernyataan CASE menilai status produk (Baharu atau Terpakai) dan secara bersyarat memberikan nilai dedahan yang sesuai berdasarkan tetapan expose_new atau expose_used pengeluar. Hasilnya ialah nilai 'dedah' satu digit untuk setiap produk, yang menunjukkan kawasannya yang boleh dilihat.
Pendekatan JIKA/ELSE:
Semasa IF/ELSE menghampiri anda cubaan mengandungi ralat logik, versi yang diperbetulkan mungkin:
SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, IF(status = 'New', t2.expose_new, IF(status = 'Used', t2.expose_used, NULL)) as 'expose' FROM `products` t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238
Dalam pertanyaan yang diperbetulkan ini, Penyataan IF/ELSE secara bersyarat menetapkan nilai dedahan berdasarkan status produk dan tetapan dedahan pengeluar. Hasilnya adalah sama seperti pendekatan pernyataan CASE, memberikan nilai 'dedahkan' untuk setiap produk.
Dengan memanfaatkan sama ada pernyataan CASE atau IF/ELSE dalam MySQL, anda boleh mengira kawasan yang boleh dilihat dengan berkesan untuk produk berasaskan pada peraturan yang ditentukan pengeluar, membolehkan paparan maklumat produk yang dinamik dan bersyarat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Keterlihatan Produk secara Dinamik dalam MySQL Berdasarkan Tetapan Wilayah Pengilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!