Rumah > pangkalan data > tutorial mysql > Bagaimana Saya Boleh Menggunakan MySQL's CASE Dengan Betul..WHEN Kenyataan untuk Mengelakkan Keputusan Yang Tidak Dijangka?

Bagaimana Saya Boleh Menggunakan MySQL's CASE Dengan Betul..WHEN Kenyataan untuk Mengelakkan Keputusan Yang Tidak Dijangka?

Susan Sarandon
Lepaskan: 2024-12-31 18:56:10
asal
938 orang telah melayarinya

How Can I Correctly Use MySQL's CASE..WHEN Statement to Avoid Unexpected Results?

Memahami CASE..WHEN Statement dalam MySQL

Apabila bekerja dengan MySQL, CASE..WHEN statement ialah alat yang berharga untuk menilai berbilang syarat dan mengembalikan nilai yang berbeza berdasarkan syarat tersebut. Walau bagaimanapun, terdapat cara khusus untuk menggunakannya dengan betul untuk mengelakkan hasil yang tidak dijangka.

Pertimbangkan pertanyaan berikut:

SELECT
   CASE course_enrollment_settings.base_price
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    WHEN course_enrollment_settings.base_price<101      THEN 2
    WHEN course_enrollment_settings.base_price>100 AND   
                      course_enrollment_settings.base_price<201 THEN 3
        ELSE 6
   END AS 'calc_base_price',
   course_enrollment_settings.base_price
FROM
    course_enrollment_settings
WHERE course_enrollment_settings.base_price = 0
Salin selepas log masuk

Pertanyaan bertujuan untuk mengambil kursus dengan harga asas sifar dan menetapkan secara bersyarat nilai kepada 'calc_base_price' berdasarkan julat harga. Walau bagaimanapun, hasilnya mengembalikan '3' untuk semua baris dengan base_price 0.

Untuk membetulkannya, adalah penting untuk mengalih keluar nama lajur selepas CASE:

SELECT
   CASE
    WHEN base_price = 0      THEN 1
    ...
    END
Salin selepas log masuk

Ini memastikan CASE pernyataan menilai keadaan dengan betul dan mengembalikan nilai yang sesuai untuk setiap baris. Penyata CASE mempunyai dua bentuk: satu dengan nama lajur sasaran dan satu tanpa. Dalam senario ini, borang kedua, yang menggunakan syarat carian, dikehendaki.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Menggunakan MySQL's CASE Dengan Betul..WHEN Kenyataan untuk Mengelakkan Keputusan Yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan