Dalam senario di mana data jadual memerlukan paparan bersyarat berdasarkan kriteria tertentu, adalah perkara biasa untuk menggunakan pernyataan bersyarat, seperti CASE atau JIKA/ELSEIF, dalam pertanyaan pilih MySQL. Dalam keadaan ini, pertanyaan diperlukan yang menentukan keterlihatan produk berdasarkan peraturan pengilang.
Masalah:
Diberikan dua jadual, satu mengandungi maklumat pengilang dan kawasan keterlihatan, dan satu lagi yang mengandungi maklumat produk, objektifnya adalah untuk membuat pertanyaan yang mengembalikan butiran produk bersama-sama dengan nilai yang dikira yang menunjukkan tempat produk itu boleh dilihat. Nilai yang dikira hendaklah berdasarkan sama ada produk itu baharu atau digunakan, dan peraturan dedahan yang ditakrifkan dalam jadual pengilang.
Penyelesaian:
Kedua-dua CASE dan IF/ Pernyataan ELSEIF boleh digunakan untuk mencapai hasil ini, dengan CASE menyatakan syarat dengan lebih ringkas.
Pertanyaan berikut menggunakan Kenyataan 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:
Pertanyaan ini secara dinamik menentukan kekangan keterlihatan untuk setiap produk berdasarkan tetapan pengilang dan status produk. Ia menyediakan maklumat yang diperlukan untuk paparan atau pengedaran bersyarat berdasarkan wilayah yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk Menunjukkan/Menyembunyikan Produk Berdasarkan Peraturan Pengilang dalam MySQL Menggunakan Pernyataan SELECT Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!