MySQL Select Statement: Menentukan Keterlihatan Produk Menggunakan Tetapan Pengilang
Matlamat anda adalah untuk membina pertanyaan yang mengira keterlihatan produk berdasarkan peraturan ditakrifkan dalam jadual pengilang. Secara khusus, anda ingin menentukan tempat produk boleh dilihat (cth., Di mana-mana, Kanada sahaja atau Amerika Syarikat sahaja).
Pertanyaan awal cuba menggunakan pernyataan IF/ELSEIF dalam subkueri untuk mengira keterlihatan. Walau bagaimanapun, pendekatan ini tidak betul. Sebaliknya, pertimbangkan untuk menggunakan pernyataan CASE untuk menilai status produk dan tetapkan tahap keterlihatan yang sesuai.
Pernyataan CASE yang disediakan mempunyai isu kecil: ia sentiasa menilai keadaan WHEN pertama tanpa mengira status produk. Untuk membetulkannya, alih keluar syarat DAN daripada setiap klausa WHEN.
Pertanyaan yang disemak berikut harus memberikan hasil yang diingini:
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
Pertanyaan ini menilai status setiap produk, sama ada 'Baharu ' atau 'Digunakan' dan mengembalikan tahap keterlihatan sepadan yang ditakrifkan dalam jadual pengilang.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Keterlihatan Produk dalam MySQL Berdasarkan Tetapan Pengilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!