Rumah > pangkalan data > tutorial mysql > ## Mengapa Klausa LIMIT Tidak Dibenarkan dalam Pertanyaan KEMASKINI Berbilang Jadual dalam MySQL?

## Mengapa Klausa LIMIT Tidak Dibenarkan dalam Pertanyaan KEMASKINI Berbilang Jadual dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-10-25 10:20:02
asal
771 orang telah melayarinya

##  Why is LIMIT Clause Not Allowed in Multi-Table UPDATE Queries in MySQL?

MySQL Ralat: Salah Penggunaan UPDATE dan LIMIT

Apabila melaksanakan pertanyaan UPDATE pada berbilang jadual dalam MySQL, ralat mungkin berlaku disebabkan oleh penggunaan UPDATE dan LIMIT yang salah. Isu ini timbul apabila cuba mengemas kini rekod dalam berbilang jadual di mana keadaan ON bergabung dengan jadual dan klausa LIMIT digunakan.

Menurut dokumentasi MySQL untuk KEMASKINI, "Untuk sintaks berbilang jadual, KEMASKINI mengemas kini baris. dalam setiap jadual yang dinamakan dalam table_references yang memenuhi syarat Dalam kes ini, ORDER BY dan LIMIT tidak boleh digunakan."

Dalam kod MySQL yang disediakan, pertanyaan cuba mengemas kini baris dalam "pengguna" dan "contact_info. " jadual berdasarkan syarat cantum. Walau bagaimanapun, klausa LIMIT digunakan untuk mengehadkan bilangan baris yang dikemas kini kepada 1. Ini tidak dibenarkan dalam pertanyaan KEMASKINI berbilang jadual.

Untuk menyelesaikan isu ini, alih keluar klausa LIMIT daripada pertanyaan. Ini akan membenarkan pernyataan KEMASKINI mempengaruhi semua baris dalam jadual yang dicantumkan yang memenuhi syarat yang ditentukan. Kod yang diubah suai akan kelihatan seperti ini:

$q = "UPDATE users INNER JOIN contact_info ON contact_info.user_id = users.user_id SET active.users = NULL WHERE (email.contact_info = '" . mysqli_real_escape_string($mysqli, $x) . "' AND active.users = '" . mysqli_real_escape_string($mysqli, $y) . "')";
$r = mysqli_query ($mysqli, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($mysqli));
Salin selepas log masuk

Dengan mengalih keluar klausa LIMIT, pertanyaan akan mengemas kini semua baris dalam kedua-dua jadual "pengguna" dan "contact_info" di mana alamat e-mel dan status aktif sepadan dengan yang ditentukan nilai.

Atas ialah kandungan terperinci ## Mengapa Klausa LIMIT Tidak Dibenarkan dalam Pertanyaan KEMASKINI Berbilang Jadual 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