Rumah >pangkalan data >tutorial mysql >Mengapakah MySQL `GROUP BY` Membenarkan Lajur Tidak Beragregat dalam Klausa SELECT?
GROUP BY
MySQL: Pandangan Lebih Dekat pada Gelagat UniknyaPengendalian klausa GROUP BY
MySQL berbeza daripada sistem pangkalan data lain seperti Oracle dan SQL Server. Anda mungkin telah melihat bahawa MySQL membenarkan pemilihan lajur tidak teragregat dalam klausa SELECT
, walaupun lajur tersebut tidak disertakan dalam klausa GROUP BY
. Ini menyimpang daripada tingkah laku SQL standard.
Mengapa pengecualian ini dalam MySQL?
Dokumentasi MySQL (versi 5.0 dan lebih baru) menerangkan pilihan reka bentuk ini sebagai pertukaran antara pengoptimuman prestasi dan kemesraan pengguna. Kelebihan utama ialah:
SELECT
mengelakkan langkah pengisihan dan pengagregatan tambahan, yang membawa kepada pelaksanaan pertanyaan yang lebih pantas.Fleksibiliti ini, walaupun mudah, adalah penting untuk difahami. Adalah penting untuk ambil perhatian bahawa nilai khusus yang dipilih untuk lajur tidak teragregat adalah sewenang-wenangnya – nilai tersebut tidak dijamin daripada baris tertentu dalam kumpulan. Oleh itu, menggunakan pendekatan ini memerlukan pertimbangan yang teliti terhadap data dan hasil yang diinginkan.
Atas ialah kandungan terperinci Mengapakah MySQL `GROUP BY` Membenarkan Lajur Tidak Beragregat dalam Klausa SELECT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!