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:
<code class="language-sql">HAVING avg_rating > 5</code>
<code class="language-sql">WHERE (sum(reviews.rev_rating)/count(reviews.rev_id)) > 5</code>
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!