Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengemas kini Entri MySQL Menggunakan CASE untuk Tugasan Nilai Dinamik?

Bagaimana untuk Mengemas kini Entri MySQL Menggunakan CASE untuk Tugasan Nilai Dinamik?

Barbara Streisand
Barbara Streisandasal
2024-11-11 03:34:03751semak imbas

How to Update a MySQL Entry Using CASE for Dynamic Value Assignment?

Cara Mengemas kini Entri dalam MySQL Dengan Berkesan Menggunakan CASE untuk Nilai Baharu

Untuk mengemas kini entri dalam MySQL menggunakan pernyataan CASE untuk yang baharu nilai, ikut langkah berikut:

  • Sintaks:
UPDATE table_name
SET column_name = CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ...
    ELSE valueN
END
  • Contoh:
UPDATE ae44
SET price = CASE
    WHEN ID = 'AT259793380' THEN '500'
    WHEN ID = 'AT271729590' THEN '600'
    WHEN ID = 'AT275981020' THEN '700'
    ELSE NULL    -- Optional: Set values for the remaining matching ID values
END

Nota: Pertanyaan yang diberikan oleh soalan mengemas kini harga untuk rekod dengan ID lain kepada NULL. Untuk mengelakkan ini:

Pilihan 1: Tentukan Nilai Lalai:

UPDATE ae44
SET price = CASE
    WHEN ID IN ('AT259793380', 'AT271729590', 'AT275981020') THEN
        CASE
            WHEN ID = 'AT259793380' THEN '500'
            WHEN ID = 'AT271729590' THEN '600'
            WHEN ID = 'AT275981020' THEN '700'
        END
    ELSE
        price
    END

Pilihan 2: Gunakan SERTAI:

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 Entri MySQL Menggunakan CASE untuk Tugasan Nilai Dinamik?. 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