Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan SQL Saya Menunjukkan Ralat 'Lajur Tidak Diketahui di Mana Klausa'?

Mengapa Pertanyaan SQL Saya Menunjukkan Ralat 'Lajur Tidak Diketahui di Mana Klausa'?

Patricia Arquette
Lepaskan: 2025-01-17 16:02:10
asal
567 orang telah melayarinya

Why Does My SQL Query Show an

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan