Memahami MySQL CASE: Panduan Komprehensif
Apabila bekerja dengan pangkalan data SQL, memanipulasi data untuk mengekstrak cerapan yang bermakna adalah penting. Pernyataan CASE menawarkan alat yang berkuasa untuk melaksanakan penyata SQL secara bersyarat, membolehkan anda melakukan transformasi dan penilaian data yang kompleks.
Menyingkap Sintaks CASE
Pernyataan SQL CASE berikut format berstruktur:
CASE WHEN condition1 THEN result1 [WHEN condition2 THEN result2] ... [ELSE default_result] END CASE
Begini cara anda boleh memanfaatkan CASE untuk mencapai hasil yang anda inginkan:
Contoh: Menetapkan Perintah Peranan
Andaikan anda mempunyai medan dalam jadual peranan_pengguna yang mengandungi peranan seperti "Pengurus", "Sambilan", dan sebagainya. Anda ingin mencipta role_order medan baharu yang memberikan nombor berdasarkan peranan.
Penyelesaian menggunakan CASE:
CASE WHEN user_role = 'Manager' THEN 5 WHEN user_role = 'Part Time' THEN 3 ELSE -1 -- Handle unknown roles END CASE
Pernyataan CASE ini berfungsi seperti pernyataan suis , menilai nilai peranan_pengguna dan menetapkan nombor pesanan_peranan yang sepadan berdasarkan syarat yang dipratentukan.
Memahami Pelaksanaan CASE
CASE berbeza daripada pernyataan IF dengan bertindak sebagai pernyataan penilaian yang komprehensif. Ia bermula dengan menilai keadaan WHEN pertama dan melaksanakan hasil yang sepadan. Jika syarat tidak dipenuhi, ia beralih ke keadaan WHEN seterusnya sehingga keadaan yang sepadan ditemui. Jika tiada syarat WHEN sepadan, klausa ELSE pilihan menyediakan hasil lalai.
Sintaks CASE Ringkas untuk Menilai Nilai Tunggal
Sintaks alternatif untuk CASE tersedia apabila menilai sesuatu nilai tunggal:
CASE value WHEN condition1 THEN result1 [WHEN condition2 THEN result2] ... [ELSE default_result] END CASE
Sintaks ini memudahkan pernyataan apabila memeriksa satu nilai tertentu, seperti dalam contoh menyemak nilai peranan_pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pernyataan CASE untuk Menetapkan Nilai Berdasarkan Syarat dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!