Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dengan Nilai Berbeza dalam Satu Pertanyaan MySQL?

Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dengan Nilai Berbeza dalam Satu Pertanyaan MySQL?

Patricia Arquette
Lepaskan: 2025-01-17 11:17:14
asal
219 orang telah melayarinya

How Can I Update Multiple Rows with Different Values in a Single MySQL Query?

Mengemaskini Berbilang Baris MySQL dengan Cekap dengan Nilai Berbeza

MySQL menawarkan beberapa kaedah untuk mengemas kini berbilang baris dengan nilai yang berbeza dalam satu pertanyaan. Walaupun pernyataan IF boleh berfungsi, pernyataan CASE memberikan penyelesaian yang lebih ringkas dan boleh dibaca, terutamanya apabila berhadapan dengan pelbagai syarat.

Mari kita pertimbangkan senario di mana kita perlu mengemas kini jadual table_users, menetapkan nilai cod_user berbeza berdasarkan peranan pengguna dalam pejabat tertentu. Pendekatan yang lebih bersih daripada menggunakan berbilang IF pernyataan ditunjukkan di bawah:

Pertanyaan ini menggunakan pernyataan CASE untuk mengemas kini cod_user berdasarkan user_rol:

<code class="language-sql">UPDATE table_users
SET cod_user = CASE
    WHEN user_rol = 'student' THEN '622057'
    WHEN user_rol = 'assistant' THEN '2913659'
    WHEN user_rol = 'admin' THEN '6160230'
    END,
date = '12082014'
WHERE user_rol IN ('student', 'assistant', 'admin')
AND cod_office = '17389551';</code>
Salin selepas log masuk

Berikut ialah pecahan:

  • CASE pernyataan: Ini mengendalikan pelbagai keadaan dengan elegan. Setiap klausa WHEN menyemak syarat, dan jika benar, memberikan nilai cod_user yang sepadan.
  • Berbilang syarat: Pernyataan CASE menguruskan peranan pengguna yang berbeza dengan cekap.
  • date kemas kini: Medan date dikemas kini kepada '12082014' untuk semua baris yang sepadan. Ingat untuk melaraskan format tarikh ('YYYYMMDD' dalam contoh ini) agar sepadan dengan tetapan pangkalan data anda.
  • WHERE klausa: Ini menapis kemas kini untuk hanya mempengaruhi baris dengan user_rol ialah 'pelajar', 'pembantu' atau 'pentadbir' dan cod_office ialah '17389551'.

Kaedah ini menyediakan penyelesaian yang lebih cekap dan boleh diselenggara berbanding dengan menggunakan beberapa pernyataan UPDATE individu atau struktur IF bersarang kompleks. Pernyataan CASE meningkatkan kebolehbacaan dan memudahkan logik pertanyaan keseluruhan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dengan Nilai Berbeza dalam Satu Pertanyaan MySQL?. 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