Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Baris dengan betul dalam MySQL Menggunakan CASE untuk Penetapan Nilai?

Bagaimana untuk Mengemas kini Baris dengan betul dalam MySQL Menggunakan CASE untuk Penetapan Nilai?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-14 10:30:02274semak imbas

How to Correctly Update Rows in MySQL Using CASE for Value Assignment?

Mengemas kini Baris dalam MySQL Menggunakan CASE for Value Assignment

Untuk mengemas kini baris tertentu dalam pangkalan data MySQL menggunakan pernyataan CASE WHEN , sintaks yang betul mesti diikuti. Pertanyaan yang diberikan, yang cuba mengemas kini harga berdasarkan nilai ID, menunjukkan penggunaan pernyataan CASE yang salah.

Untuk menyelesaikannya, pertanyaan kemas kini yang betul hendaklah seperti berikut:

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

Dalam pertanyaan yang diperbetulkan ini, ambil perhatian bahawa:

  • Pernyataan CASE WHEN distrukturkan dengan betul dengan klausa WHEN individu.
  • Penugasan nilai baharu dilakukan menggunakan sintaks :=.
  • Pertanyaan berakhir dengan koma bertitik (;).

Mengemas kini baris menggunakan pernyataan CASE boleh berguna apabila menetapkan nilai yang berbeza berdasarkan syarat tertentu. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pertanyaan yang diberikan akan mengemas kini harga untuk semua rekod, tanpa mengira ID mereka. Jika matlamatnya adalah untuk mengemas kini hanya ID khusus yang disebut dalam pertanyaan, pendekatan berikut boleh digunakan:

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;

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Baris dengan betul dalam MySQL Menggunakan CASE untuk Penetapan Nilai?. 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