Rumah >pangkalan data >tutorial mysql >CASE atau IF ELSEIF dalam MySQL: Mana yang Terbaik untuk Keterlihatan Wilayah Dinamik?
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!