Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan KEMASKINI MySQL Saya Merentas Berbilang Jadual Menghasilkan Ralat 'Lajur Tidak Diketahui'?

Mengapa Pertanyaan KEMASKINI MySQL Saya Merentas Berbilang Jadual Menghasilkan Ralat 'Lajur Tidak Diketahui'?

Linda Hamilton
Lepaskan: 2025-01-14 07:20:44
asal
765 orang telah melayarinya

Why Does My MySQL UPDATE Query Across Multiple Tables Result in an

MySQL 'Lajur tidak diketahui dalam 'senarai medan'' Ralat Semasa Mengemas kini Berbilang Jadual

Menghadapi ralat MySQL #1054 semasa mencuba pertanyaan kemas kini? Inilah sebabnya:

Pertanyaan yang disediakan cuba mengemas kini dua jadual, MASTER_USER_PROFILE dan TRAN_USER_BRANCH, menggunakan sintaks:

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH
SET MASTER_USER_PROFILE.fellow='y'
WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID
AND TRAN_USER_BRANCH.BRANCH_ID = 17
Salin selepas log masuk

Walau bagaimanapun, apabila melakukan kemas kini merentas berbilang jadual, adalah penting untuk menggunakan sintaks yang betul. Dalam kes ini, ralat "Lajur tidak diketahui 'y' dalam 'senarai medan'" timbul kerana MySQL mentafsir nilai 'y' sebagai nama lajur disebabkan petikan tunggal yang mengelilinginya.

Menyelesaikan Ralat

Untuk menyelesaikan isu ini, nilai 'y' hendaklah disertakan dalam petikan berganda atau disertakan dengan tanda belakang (`) seperti yang ditunjukkan di bawah kod:

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH
SET MASTER_USER_PROFILE.fellow="y"
WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID
AND TRAN_USER_BRANCH.BRANCH_ID = 17;
Salin selepas log masuk

Dengan menggunakan pembetulan ini, MySQL akan mentafsirkan 'y' dengan betul sebagai nilai untuk mengemas kini lajur rakan MASTER_USER_PROFILE.

Memetik Konvensyen

Untuk mengelakkan kesilapan sedemikian pada masa hadapan, adalah penting untuk mematuhi konvensyen petikan yang betul. Petikan tunggal atau berganda hendaklah digunakan untuk nilai, rentetan dan yang serupa, manakala tanda belakang hendaklah dikhaskan untuk nama lajur.

Atas ialah kandungan terperinci Mengapa Pertanyaan KEMASKINI MySQL Saya Merentas Berbilang Jadual Menghasilkan Ralat 'Lajur Tidak Diketahui'?. 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