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
Linda Hamiltonasal
2025-01-14 07:20:44767semak imbas

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

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;

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!

Kenyataan:
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