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

Bolehkah saya Menggunakan Alias ​​Lajur dalam Klausa WHERE MySQL?

Patricia Arquette
Lepaskan: 2025-01-20 01:52:08
asal
534 orang telah melayarinya

Can I Use Column Aliases in MySQL's WHERE Clause?

Gunakan alias dalam klausa MySQL WHERE

Dalam MySQL, alias sering digunakan untuk memberikan nama sementara kepada lajur terbitan. Walaupun mudah untuk rujukan, menggunakannya dalam klausa WHERE boleh menyebabkan ralat.

MySQL mengehadkan merujuk alias lajur dalam klausa WHERE. Ini kerana nilai lajur mungkin belum ditentukan apabila klausa WHERE dilaksanakan. Oleh itu, menyatakan alias dalam klausa WHERE akan mencetuskan ralat "lajur tidak diketahui".

Penyelesaian

Untuk mengatasi had ini, terdapat beberapa penyelesaian:

  • Klausa HAVING: Klausa HAVING boleh mengakses alias selepas klausa WHERE, apabila nilai lajur diketahui. Contohnya, untuk memilih rekod dengan purata rating lebih daripada 5 (dikira sebagai jumlah(reviews.rev_rating)/count(reviews.rev_id) sebagai avg_rating), anda akan menggunakan klausa HAVING berikut:
<code class="language-sql">HAVING avg_rating > 5</code>
Salin selepas log masuk
  • Ulang ungkapan: Sebagai alternatif, anda boleh mengulang ungkapan alias terus dalam klausa WHERE. Walau bagaimanapun, kaedah ini hanya berfungsi dengan fungsi bukan agregat. Contohnya, untuk memilih rekod dengan penilaian purata lebih besar daripada 5:
<code class="language-sql">WHERE (sum(reviews.rev_rating)/count(reviews.rev_id)) > 5</code>
Salin selepas log masuk

Sekatan

Sila ambil perhatian bahawa tidak semua ungkapan dibenarkan dalam klausa WHERE. Fungsi agregat seperti SUM memerlukan klausa HAVING.

Seperti yang dinyatakan dalam manual MySQL:

"Rujukan kepada alias lajur dalam klausa WHERE tidak dibenarkan kerana nilai lajur mungkin tidak ditentukan apabila klausa WHERE dilaksanakan

Atas ialah kandungan terperinci Bolehkah saya Menggunakan Alias ​​Lajur 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