Rumah > pangkalan data > tutorial mysql > Bagaimana Menggunakan CASE WHEN dengan Betul dalam MySQL dengan Lajur Numerik dan Syarat Carian?

Bagaimana Menggunakan CASE WHEN dengan Betul dalam MySQL dengan Lajur Numerik dan Syarat Carian?

Susan Sarandon
Lepaskan: 2025-01-02 14:41:40
asal
1015 orang telah melayarinya

How to Correctly Use CASE WHEN in MySQL with Numeric Columns and Search Conditions?

Penggunaan CASE yang Betul..WHEN dalam MySQL

Dalam MySQL, konstruk CASE..WHEN membolehkan pengguna menilai berbilang keadaan dan mengembalikan hasil yang sepadan. Walau bagaimanapun, isu biasa timbul apabila menggunakan CASE dengan keadaan carian dan lajur angka.

Pertanyaan dan Isu Asal:

Dalam pertanyaan, pernyataan CASE menilai harga_asas lajur, dengan base_price ditakrifkan sebagai perpuluhan(8,0):

SELECT
   CASE course_enrollment_settings.base_price
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    ...
    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

Hasil pertanyaan ini mengembalikan hasil yang tidak dijangka dengan semua baris yang dipilih, dengan harga_asas ialah 0, kembalikan keadaan 3:

3 0
3 0
3 0
3 0
3 0
Salin selepas log masuk

Penyelesaian:

Untuk membetulkan isu ini, spesifikasi lajur selepas CASE harus dikeluarkan. Dalam bentuk kedua CASE, nama lajur tidak diperlukan selepas perkataan CASE jika anda menggunakan syarat carian.

SELECT
   CASE
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    ...
    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

Penjelasan:

CASE mempunyai dua yang berbeza borang: borang pertama menentukan nama lajur, manakala borang kedua tidak. Penggunaan borang kedua yang betul semasa menilai keadaan carian membolehkan MySQL menilai keadaan dengan betul dan mengembalikan hasil yang dimaksudkan.

Atas ialah kandungan terperinci Bagaimana Menggunakan CASE WHEN dengan Betul dalam MySQL dengan Lajur Numerik dan Syarat Carian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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