Rumah >pangkalan data >tutorial mysql >Mengapa Pelayan SQL Menghasilkan Ralat 'Nama Lajur Tidak Sah' Apabila Menggunakan Alias Fungsi Agregat dalam Klausa HAVING?
Sekatan Alias Pelayan SQL dalam Klausa HAVING
Dalam Pelayan SQL, menggunakan alias untuk fungsi agregat dalam klausa HAVING boleh mengakibatkan Ralat "Nama lajur tidak sah". Percanggahan yang jelas ini berpunca daripada aliran pelaksanaan pertanyaan SQL.
Klausa HAVING menilai selepas operasi kumpulan tetapi sebelum proses pemilihan. Oleh itu, apabila klausa HAVING mula-mula dilaksanakan, alias yang diberikan kepada fungsi agregat, seperti 'col7' dalam coretan kod yang disediakan, belum lagi dikenali oleh pelayan.
Turutan pelaksanaan pertanyaan adalah seperti berikut:
Oleh itu, pada tahap MEMPUNYAI penilaian klausa, pelayan tidak mengiktiraf 'col7' sebagai nama lajur yang sah. Sekatan ini menghalang penggunaan alias dalam klausa HAVING untuk merujuk fungsi agregat.
Walau bagaimanapun, adalah mungkin untuk menggunakan alias dalam klausa ORDER BY, kerana penilaian ini berlaku selepas klausa HAVING.
Atas ialah kandungan terperinci Mengapa Pelayan SQL Menghasilkan Ralat 'Nama Lajur Tidak Sah' Apabila Menggunakan Alias Fungsi Agregat dalam Klausa HAVING?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!