Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Pertanyaan Postgresql Saya Mengembalikan 'lajur 'Smith' tidak wujud' Walaupun Lajur Wujud?
Nama Lajur Tidak Dikenali dalam Pertanyaan Postgresql
Apabila cuba untuk melaksanakan pernyataan SELECT mudah dalam Postgresql, anda mungkin menghadapi ralat "column ' Smith' tidak wujud." Ini boleh membingungkan, terutamanya apabila anda mengetahui bahawa lajur yang anda rujuk memang wujud dalam pangkalan data anda.
Punca Punca:
Isu ini berpunca daripada cara Postgresql mengendalikan nama lajur yang disebut dan tidak disebut. Dalam kes ini, anda telah meletakkan petikan berganda di sekeliling nama lajur "lName" untuk menunjukkan bahawa ia adalah padanan tepat. Walau bagaimanapun, nilai yang anda bandingkan dengannya, "Smith," tidak disertakan dalam petikan.
Penyelesaian:
Untuk menyelesaikan isu ini, pastikan kedua-dua nama lajur dan nilai perbandingan disertakan dalam jenis petikan yang sama. Dalam Postgresql, biasanya disyorkan untuk menggunakan petikan tunggal untuk literal rentetan:
SELECT * FROM employee WHERE "lName" LIKE 'Smith'
Selain itu, anda mungkin ingin mempertimbangkan untuk memasukkan kad bebas dalam ungkapan LIKE anda. Tanpa kad bebas, perbandingan LIKE adalah bersamaan dengan semakan kesaksamaan. Jika anda berhasrat untuk melakukan perlawanan separa, sertakan watak kad bebas, seperti '%':
SELECT * FROM employee WHERE "lName" LIKE '%Smith%'
Atas ialah kandungan terperinci Mengapa Pertanyaan Postgresql Saya Mengembalikan 'lajur 'Smith' tidak wujud' Walaupun Lajur Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!