Rumah >pangkalan data >tutorial mysql >CASE atau IF ELSEIF dalam MySQL: Mana yang Terbaik untuk Keterlihatan Wilayah Dinamik?

CASE atau IF ELSEIF dalam MySQL: Mana yang Terbaik untuk Keterlihatan Wilayah Dinamik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 22:17:15893semak imbas

CASE or IF ELSEIF in MySQL: Which is Best for Dynamic Region Visibility?

MySQL Select Statement dengan CASE atau IF ELSEIF: Memilih Laluan yang Betul untuk Keterlihatan Wilayah Dinamik

Dalam senario ini, anda mempunyai dua jadual: satu dengan maklumat pengilang, termasuk sekatan wilayah, dan satu dengan butiran produk. Matlamat anda adalah untuk menentukan wilayah secara dinamik di mana produk boleh dilihat berdasarkan tetapan pengilang.

Di tengah-tengah pertanyaan anda terletak keputusan menggunakan pernyataan CASE atau IF ELSEIF. Kedua-dua pendekatan boleh memberikan nilai dinamik berdasarkan pernyataan bersyarat.

Pernyataan KES: Mempermudah Logik Bersyarat Kompleks

Dalam pertanyaan anda, anda telah cuba menggunakan pernyataan CASE untuk menilai status produk (Baru atau Terpakai) dan nilai pendedahan yang sepadan daripada jadual pengilang. Walau bagaimanapun, penyata CASE anda sentiasa mengembalikan nilai pertama tanpa mengira keadaan sebenar.

Untuk menyelesaikannya, ubah suai penyata CASE anda seperti berikut:

CASE status
  WHEN 'New' THEN t2.expose_new
  WHEN 'Used' THEN t2.expose_used
  ELSE NULL
END as 'expose'

Pernyataan CASE yang dipertingkat ini menilai produk dengan betul status dan mengembalikan nilai pendedahan yang sesuai.

Menggunakan IF ELSEIF: A Step-by-Step Penilaian

Sebagai alternatif, anda boleh menggunakan pernyataan IF ELSEIF untuk mencapai hasil yang sama. Walau bagaimanapun, pendekatan ini memerlukan urutan pernyataan IF untuk menilai setiap keadaan yang 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, 1)) as 'expose'
FROM 
  `products` t1
JOIN 
  manufacturers t2
  ON 
    t2.id = t1.seller
WHERE 
  t1.seller = 4238

Struktur IF ELSEIF ini menilai keadaan status secara berurutan dan mengembalikan nilai pendedahan yang sesuai.

Akhirnya, pilihan antara CASE dan IF ELSEIF bergantung pada kerumitan logik bersyarat anda. Untuk logik mudah, pernyataan CASE menawarkan pendekatan yang ringkas dan boleh dibaca. Untuk senario yang lebih kompleks, pernyataan IF ELSEIF memberikan fleksibiliti yang lebih besar untuk mengendalikan berbilang keadaan.

Atas ialah kandungan terperinci CASE atau IF ELSEIF dalam MySQL: Mana yang Terbaik untuk Keterlihatan Wilayah Dinamik?. 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