Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan SQL Saya Menunjukkan Ralat 'Lajur Tidak Diketahui di Mana Klausa'?
Menyelesaikan masalah Ralat "Lajur Tidak Diketahui" dalam Klausa SQL WHERE
Ralat "Lajur Tidak Diketahui di Mana Klausa" yang digeruni sering melanda pertanyaan SQL. Ralat ini timbul apabila pernyataan SQL anda merujuk nama lajur dalam klausa WHERE
yang sistem pangkalan data tidak dapat mencari.
Mari kita periksa senario biasa:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
Pertanyaan ini bertujuan untuk mengambil u_name
daripada jadual users
, alias sebagai user_name
, dengan user_name
ialah "john." Walau bagaimanapun, ini selalunya menghasilkan ralat "Lajur Tidak Diketahui 'nama_pengguna' di mana klausa".
Puncanya ialah susunan pemprosesan SQL: ia menilai fasal WHERE
sebelum klausa SELECT
. Oleh itu, apabila pangkalan data mencapai klausa WHERE
, alias user_name
belum ditakrifkan lagi.
Penyelesaian? Pastikan alias yang digunakan dalam fasal WHERE
ditakrifkan sebelum ia dirujuk. Hanya gunakan nama lajur asal dalam klausa WHERE
:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
Pertanyaan yang disemak ini membolehkan pangkalan data mengenal pasti u_name
dengan betul dan kemudian menggunakan alias user_name
semasa fasa SELECT
, menghalang ralat. Alias digunakan hanya untuk output, bukan untuk penapisan.
Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Saya Menunjukkan Ralat 'Lajur Tidak Diketahui di Mana Klausa'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!