Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan KEMASKINI MySQL Saya Merentas Berbilang Jadual Menghasilkan Ralat 'Lajur Tidak Diketahui'?
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.
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.
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!