Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Pertanyaan Postgresql Saya Mengembalikan Ralat 'Nama Lajur Tidak Wujud'?

Mengapa Pertanyaan Postgresql Saya Mengembalikan Ralat 'Nama Lajur Tidak Wujud'?

DDD
Lepaskan: 2024-12-03 15:15:12
asal
338 orang telah melayarinya

Why Does My Postgresql Query Return a

Menyelesaikan masalah Ralat "Nama Lajur Tidak Wujud" dalam Pertanyaan Postgresql

Dalam bekerja dengan pangkalan data Postgresql, adalah penting untuk mematuhi sintaks dan konvensyen penamaan untuk mengelakkan kesilapan. Satu cabaran biasa ialah menghadapi ralat "nama lajur tidak wujud" semasa pelaksanaan pertanyaan.

Pertimbangkan pertanyaan berikut:

SELECT * 
FROM employee 
WHERE "lName" LIKE "Smith"
Salin selepas log masuk

Apabila melaksanakan pertanyaan ini, anda mungkin menerima ralat yang menyatakan bahawa lajur "Smith" tidak wujud. Ini kerana Postgresql mentafsir "Smith" dalam petikan berganda sebagai pengecam (nama lajur), bukan rentetan.

Untuk menyelesaikan isu ini, petikan berganda hendaklah digantikan dengan petikan tunggal untuk menandakan literal rentetan:

SELECT * 
FROM employee 
WHERE "lName" LIKE 'Smith'
Salin selepas log masuk

Kini, Postgresql akan mengenali "Smith" sebagai nilai yang akan dipadankan dengan lajur "lName", iaitu dipetik dengan betul.

Selain itu, adalah penting untuk memastikan bahawa nama lajur dalam klausa WHERE sepadan dengan nama lajur sebenar dalam jadual pangkalan data. Dalam kes ini, jadual mengandungi lajur bernama "lName" dengan huruf besar "N". Oleh itu, ia mesti dipetik dalam pertanyaan untuk membezakannya daripada nama lajur berpotensi lain.

Akhir sekali, pertimbangkan sama ada anda berhasrat untuk memasukkan kad bebas dalam klausa LIKE. Dalam kebanyakan dialek SQL, menggunakan LIKE tanpa kad bebas (cth., "Smith") adalah bersamaan dengan menggunakan =. Jika anda ingin mencari padanan separa, anda harus memasukkan kad bebas, seperti:

SELECT * 
FROM employee 
WHERE "lName" LIKE '%Smith%'
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Pertanyaan Postgresql Saya Mengembalikan Ralat 'Nama Lajur Tidak Wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan