Menyelesaikan masalah Ralat SQL "Lajur Tidak Diketahui dalam Klausa Tempat"
Ralat "Lajur Tidak Diketahui di Mana Klausa" yang digeruni dalam SQL selalunya timbul daripada salah faham mudah susunan penilaian pertanyaan. SQL memproses pertanyaan dari kanan ke kiri, bermakna klausa WHERE
dinilai sebelum alias yang ditakrifkan dalam klausa SELECT
diiktiraf.
Mari kita ilustrasikan dengan contoh:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
Pertanyaan ini cuba menapis hasil menggunakan alias user_name
, tetapi pangkalan data menemui alias ini selepas menilai klausa WHERE
. Memandangkan user_name
bukan lajur dalam jadual users
, ralat dicetuskan.
Penyelesaian: Utamakan Rujukan Lajur
Terdapat dua cara mudah untuk membetulkan perkara ini:
WHERE
dengan nama lajur sebenar daripada jadual:<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
Ini memastikan pangkalan data menggunakan lajur yang dikenal pasti dengan betul untuk penapisan.
SELECT
untuk memaksa penyelesaian alias sebelum WHERE
penilaian klausa:<code class="language-sql">SELECT (u_name) AS user_name FROM users WHERE user_name = "john";</code>
Walaupun berfungsi, pendekatan ini kurang boleh dibaca dan secara amnya kurang disukai daripada menggunakan nama lajur asal.
Dengan memahami susunan penilaian dan menggunakan salah satu daripada penyelesaian ini, anda boleh mencegah dan menyelesaikan ralat "Lajur Tidak Diketahui di Mana Klausa" dengan berkesan.
Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Saya Membuang Ralat 'Lajur Tidak Diketahui Di Mana Klausa'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!