Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dengan Nilai Berbeza dalam Satu Pertanyaan MySQL?
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>
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.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!