Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan Saya Gagal dengan 'Lajur 'Mary' Tidak Wujud' Walaupun Lajur Sedia Ada?

Mengapa Pertanyaan Saya Gagal dengan 'Lajur 'Mary' Tidak Wujud' Walaupun Lajur Sedia Ada?

Susan Sarandon
Susan Sarandonasal
2025-01-03 15:45:39528semak imbas

Why Does My Query Fail with

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!

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