MySQL Select Statement with CASE or IF ELSEIF: Choosing the Right Option
Untuk menentukan keterlihatan produk berdasarkan tetapan pengilang, MySQL menawarkan dua pilihan: pernyataan KES atau pernyataan JIKA ELSEIF. Memahami perbezaan antara kedua-dua pendekatan ini adalah penting untuk memilih penyelesaian yang optimum.
Penyata KES
Pernyataan CASE menilai berbilang keadaan dan mengembalikan nilai yang sepadan berdasarkan yang pertama keadaan yang sepadan. Dalam kes ini, syaratnya ialah status produk (Baru atau Terpakai), dan nilai yang sepadan ialah keterlihatan (1, 2, atau 3) yang ditetapkan oleh pengilang. Sintaks adalah seperti berikut:
CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE default_value END
IF ELSEIF Statement
IF ELSEIF statement menilai keadaan dalam susunan berurutan. Jika syarat adalah benar, blok kod yang sepadan akan dilaksanakan. Jika berbilang syarat adalah benar, hanya blok kod untuk keadaan benar pertama dilaksanakan. Sintaksnya adalah seperti berikut:
IF condition1 THEN code block 1 ELSEIF condition2 THEN code block 2 ... ELSE default code block END IF
Memilih Pilihan yang Tepat
Dalam kes tertentu ini, pernyataan CASE adalah pilihan yang lebih sesuai kerana ia membolehkan lebih bersih dan kod yang lebih mudah dibaca. Ia secara langsung memetakan status produk kepada nilai keterlihatan yang sepadan. Pernyataan IF ELSEIF memerlukan beberapa blok lain jika disekat, menjadikan kod lebih kompleks dan terdedah kepada ralat.
Contoh Pertanyaan Menggunakan CASE
Pertanyaan berikut menggunakan pernyataan CASE untuk mencapai 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 dengan berkesan mendapatkan semula butiran produk bersama-sama dengan nilai keterlihatan dikira menggunakan pernyataan CASE. Hasilnya ialah nilai pendedahan satu digit untuk setiap produk yang boleh digunakan untuk paparan bersyarat.
Atas ialah kandungan terperinci MySQL CASE lwn. IF ELSEIF untuk Keterlihatan Produk: Mana Yang Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!