Rumah > pangkalan data > tutorial mysql > Bolehkah saya Menggunakan Alias ​​dalam Klausa WHERE MySQL?

Bolehkah saya Menggunakan Alias ​​dalam Klausa WHERE MySQL?

Barbara Streisand
Lepaskan: 2025-01-20 02:09:09
asal
545 orang telah melayarinya

Can I Use Aliases in MySQL's WHERE Clause?

MySQL WHERE Klausa: Had Alias

MySQL membenarkan lajur pengaliasan untuk kebolehbacaan yang dipertingkatkan dan untuk mencipta ungkapan baharu dalam pertanyaan. Walau bagaimanapun, penggunaan alias secara langsung dalam klausa WHERE selalunya mengakibatkan ralat "lajur tidak diketahui". Ini kerana fasal WHERE menapis baris sebelum alias diberikan.

Penyelesaian:

Satu penyelesaian melibatkan penggunaan klausa HAVING. Tidak seperti WHERE, HAVING mengendalikan selepas pengumpulan dan pengagregatan, membenarkan rujukan kepada alias yang dibuat dalam pertanyaan:

<code class="language-sql">SELECT *, AVG(rev_rating) AS avg_rating
FROM reviews
GROUP BY rev_id
HAVING avg_rating > 5;</code>
Salin selepas log masuk

Di sini, avg_rating dirujuk dengan betul dalam HAVING.

Untuk mencapai penapisan serupa dalam klausa WHERE, anda mesti menggantikan alias dengan ungkapan lengkapnya:

<code class="language-sql">SELECT *
FROM reviews
WHERE (SUM(reviews.rev_rating) / COUNT(reviews.rev_id)) > 5;</code>
Salin selepas log masuk

Pertimbangan Penting:

Klausa WHERE tidak menyokong semua ungkapan, terutamanya fungsi agregat seperti SUM() atau AVG() yang digunakan dalam alias. Dalam kes sedemikian, HAVING adalah penting.

Seperti yang dijelaskan oleh dokumentasi MySQL, merujuk alias lajur dalam WHERE tidak dibenarkan kerana nilainya mungkin tidak dikira pada masa WHERE pelaksanaan klausa.

Atas ialah kandungan terperinci Bolehkah saya Menggunakan Alias ​​dalam Klausa WHERE MySQL?. 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