Bagaimana Mengemas kini Berbilang Jadual dengan Nilai Serupa dengan Cekap dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-11-04 00:44:30
asal
312 orang telah melayarinya

How to Efficiently Update Multiple Tables with Similar Values in MySQL?

Mengemas kini Berbilang Jadual dengan Nilai Serupa dalam MySQL

Dalam senario di mana anda mempunyai dua jadual yang memerlukan kemas kini yang sama untuk penyahnormalan, anda boleh menggunakan kemas kini berbilang jadual yang ditawarkan oleh MySQL. Pendekatan ini membenarkan kemas kini serentak merentas berbilang jadual dengan satu pernyataan.

Untuk mencapai ini:

  1. Kenal pasti Lajur Biasa: Tentukan lajur mana dalam kedua-dua jadual perlu dikemas kini dengan nilai yang sama.
  2. Sertai Jadual: Gunakan INNER JOIN untuk menyambungkan jadual berdasarkan lajur biasa (cth., id pengguna).
  3. Nyatakan Kemas Kini: Dalam klausa SET, senaraikan lajur yang akan dikemas kini dan nilainya yang sepadan. Pastikan nilai adalah konsisten merentas kedua-dua jadual.
  4. Tapis Keputusan: Tambah sebarang syarat yang diperlukan (cth., klausa WHERE) untuk menapis baris tertentu yang akan dikemas kini.

Sebagai contoh, pertimbangkan pertanyaan berikut:

UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid)
SET
  a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200,
  b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200 
WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1
Salin selepas log masuk

Di sini, lajur kemenangan, rentak dan skor kedua-dua jadual dikemas kini secara berperingkat untuk id pengguna dan nilai penutup tertentu. Ambil perhatian bahawa lajur penutup tidak terdapat dalam Jadual_Dua, jadi nilainya tidak dikemas kini.

Pertimbangan Tambahan:

  • Kemas kini berbilang jadual tidak menyokong LIMIT , jadi kemas kini mungkin menjejaskan lebih banyak baris daripada yang dimaksudkan.
  • Prosedur atau transaksi yang disimpan mungkin memberikan kawalan yang lebih baik dalam situasi tertentu.

Atas ialah kandungan terperinci Bagaimana Mengemas kini Berbilang Jadual dengan Nilai Serupa dengan Cekap dalam 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