Rumah  >  Artikel  >  pangkalan data  >  MySQL CASE lwn. IF ELSEIF untuk Keterlihatan Produk: Mana Yang Lebih Baik?

MySQL CASE lwn. IF ELSEIF untuk Keterlihatan Produk: Mana Yang Lebih Baik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-24 10:40:12563semak imbas

MySQL CASE vs. IF ELSEIF for Product Visibility: Which is Better?

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!

Kenyataan:
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