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

Mengapa Pertanyaan SQL Saya Membuang Ralat 'Lajur Tidak Diketahui Di Mana Klausa'?

Susan Sarandon
Lepaskan: 2025-01-17 16:11:10
asal
426 orang telah melayarinya

Why Does My SQL Query Throw an

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

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:

  1. Gunakan Nama Lajur Asal: Penyelesaian paling mudah ialah menggantikan alias dalam klausa WHERE dengan nama lajur sebenar daripada jadual:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
Salin selepas log masuk

Ini memastikan pangkalan data menggunakan lajur yang dikenal pasti dengan betul untuk penapisan.

  1. Sisipkan Alias ​​dalam Kurungan (Kurang Biasa): Sebagai alternatif, anda boleh kurungkan ungkapan klausa 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>
Salin selepas log masuk

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!

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