Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan SQL Saya Mengembalikan 'Lajur 'Mary' Tidak Wujud'?
"Lajur 'Mary' Tidak Wujud": Memahami Teka-teki Petikan
Apabila melaksanakan pertanyaan SQL berikut, anda mungkin menghadapi ralat menunjukkan bahawa lajur 'Mary' tidak wujud:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = ‘Mary’;
Mengelirukan, anda tidak merujuk 'Mary' sebagai nama lajur tetapi sebaliknya sebagai nilai untuk dibandingkan. Sumber ralat ini terletak pada penggunaan petikan pintar, ('Mary'), bukannya petikan tunggal biasa, ('Mary'), untuk mengehadkan rentetan literal.
Dalam SQL, petikan pintar selalunya digunakan untuk menyertakan nama lajur atau nama jadual, kerana ia menghalang kekaburan dalam kes di mana pengecam mungkin bertembung dengan perkataan terpelihara. Walau bagaimanapun, apabila ia berkaitan dengan literal rentetan, seperti nilai yang anda ingin bandingkan dengan nama orang, adalah penting untuk menggunakan petikan tunggal biasa.
Dengan menggantikan petikan pintar dengan petikan tunggal biasa, pertanyaan harus dilaksanakan dengan jayanya , mengembalikan nombor telefon yang betul untuk orang yang bernama 'Mary'. Berikut ialah pertanyaan yang diperbetulkan:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = 'Mary';
Ingat, adalah penting untuk menggunakan petikan tunggal biasa untuk literal rentetan dalam SQL untuk mengelakkan ralat dan memastikan pertanyaan anda beroperasi seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Saya Mengembalikan 'Lajur 'Mary' Tidak Wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!