Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan Saya Gagal dengan 'Lajur 'Mary' Tidak Wujud' Walaupun Lajur Sedia Ada?
Lajur 'Mary' Tidak Wujud: Kesilapan Menyoal
Apabila melaksanakan pertanyaan, anda mungkin kadangkala menghadapi mesej ralat yang menunjukkan bahawa lajur tertentu tidak wujud, walaupun ia terdapat dalam pangkalan data anda. Satu senario sedemikian ialah apabila pertanyaan merujuk nama lajur dengan aksara yang salah.
Kes 'Mary'
Dalam contoh yang disediakan, ralat berkenaan dengan lajur 'Mary'. Walau bagaimanapun, setelah meneliti pertanyaan, ternyata tidak ada lajur bernama 'Mary' dalam pertanyaan itu. Sebaliknya, 'Mary' bertujuan untuk menjadi nilai yang diberikan kepada lajur 'nama orang'.
Pendapat utama di sini ialah ralat timbul daripada pengekodan aksara 'Mary' yang salah. Dalam pertanyaan, 'Mary' disertakan dalam petikan pintar ('Mary'), iaitu aksara Unicode. Sistem pangkalan data biasanya lebih suka petikan tunggal biasa ('Mary'), yang dikodkan ASCII.
Menyelesaikan Isu
Untuk membetulkan isu ini, cuma gantikan petikan pintar dengan petikan tunggal biasa dalam pertanyaan. Ubah suai pertanyaan anda seperti berikut:
SELECT telephone.telephonenumber as tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = 'Mary';
Dengan membuat sedikit pelarasan ini, pertanyaan anda kini akan mencari orang dengan nama 'Mary' dengan betul dan mendapatkan semula nombor telefon mereka.
Atas ialah kandungan terperinci Mengapa Pertanyaan Saya Gagal dengan 'Lajur 'Mary' Tidak Wujud' Walaupun Lajur Sedia Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!