Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Kemas Kini Massal Entri MySQL dengan Nilai Bersyarat Menggunakan CASE?

Bagaimana untuk Kemas Kini Massal Entri MySQL dengan Nilai Bersyarat Menggunakan CASE?

Susan Sarandon
Susan Sarandonasal
2024-11-16 09:35:03377semak imbas

How to Mass Update MySQL Entries with Conditional Values Using CASE?

Kemas kini Mass Entri MySQL dengan Nilai Bersyarat Menggunakan CASE

Dalam MySQL, anda boleh mengemas kini entri jadual berdasarkan syarat tertentu menggunakan pernyataan CASE. Begini cara untuk melakukannya:

Masalah: Memadankan ID untuk Kemas Kini Harga

Anda mempunyai pertanyaan berikut:

update ae44
set Price = Case
when ID = 'AT259793380' then '500'
when ID = 'AT271729590' then '600'
when ID = 'AT275981020' then '700'
end case

Matlamat anda adalah untuk mengemas kini secara besar-besaran harga penyenaraian berdasarkan ID yang sepadan. Walau bagaimanapun, pertanyaan itu tidak mengembalikan hasil yang dimaksudkan.

Penyelesaian: Menggunakan CASE untuk Kemas Kini Bersyarat

Untuk membetulkan pertanyaan, anda perlu menggunakan pernyataan CASE dengan betul. Berikut ialah sintaks yang betul:

UPDATE  ae44
SET     price =
        CASE
        WHEN ID = 'AT259793380' THEN
                '500'
        WHEN ID = 'AT271729590' THEN
                '600'
        WHEN ID = 'AT275981020' THEN
                '700'
        END

Perhatikan bahawa pertanyaan ini akan mengemas kini harga untuk rekod dengan ID lain kepada NULL.

Penyelesaian Alternatif: Tidak Termasuk Kemas Kini Null

Jika anda mahu untuk mengemas kini hanya ID daripada senarai anda dan mengecualikan kemas kini nol, anda boleh menggunakan yang berikut pertanyaan:

UPDATE  ae44
JOIN    (
        SELECT  'AT259793380' AS oldval, '500' AS newval
        UNION ALL
        SELECT  'AT271729590' AS oldval, '600' AS newval
        UNION ALL
        SELECT  'AT275981020' AS oldval, '700' AS newval
        ) q
ON      ae44.id = q.oldval
SET     price = q.newval

Pertanyaan ini hanya akan mengemas kini harga untuk ID yang dinyatakan dalam jadual sementara yang dibuat menggunakan pernyataan UNION ALL.

Atas ialah kandungan terperinci Bagaimana untuk Kemas Kini Massal Entri MySQL dengan Nilai Bersyarat Menggunakan CASE?. 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