Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan SQL Saya Mengembalikan 'Lajur 'Mary' Tidak Wujud'?

Mengapa Pertanyaan SQL Saya Mengembalikan 'Lajur 'Mary' Tidak Wujud'?

Patricia Arquette
Patricia Arquetteasal
2025-01-01 02:56:13485semak imbas

Why Does My SQL Query Return

"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!

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