Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Kemas Kini Massal 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:
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.
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.
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!