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