Rumah >pangkalan data >tutorial mysql >Mengapa 'Lajur Tidak Diketahui dalam Klausa Di Mana' Berlaku Apabila Menggunakan Alias ​​dalam Pertanyaan SQL?

Mengapa 'Lajur Tidak Diketahui dalam Klausa Di Mana' Berlaku Apabila Menggunakan Alias ​​dalam Pertanyaan SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-17 15:57:14593semak imbas

Why Does

Ralat SQL: "Lajur Tidak Diketahui dalam Klausa Dimana"

Apabila melaksanakan pertanyaan SQL yang serupa dengan:

<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>

Anda mungkin menghadapi ralat "Lajur Tidak Diketahui 'nama_pengguna' di mana klausa". Ralat ini adalah kerana susunan penghuraian SQL adalah dari kanan ke kiri.

Secara khusus, klausa WHERE dihuraikan sebelum klausa SELECT. Apabila klausa WHERE dihuraikan, alias "nama_pengguna" belum lagi digunakan pada lajur "u_name". Oleh itu, pangkalan data mentafsir "nama_pengguna" sebagai lajur yang tidak diketahui dan menimbulkan ralat.

Untuk menyelesaikan masalah ini, anda boleh menggunakan nama lajur asal "u_name" dalam klausa WHERE:

<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>

Sebagai alternatif, anda boleh menggunakan subkueri untuk alias lajur sebelum menggunakan alias dalam klausa WHERE:

<code class="language-sql">SELECT user_name FROM (SELECT u_name AS user_name FROM users) AS subquery WHERE user_name = "john";</code>

Atas ialah kandungan terperinci Mengapa 'Lajur Tidak Diketahui dalam Klausa Di Mana' Berlaku Apabila Menggunakan Alias ​​dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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