Fungsi Agregat MySQL tanpa KUMPULAN OLEH: Mengapa dan Bagaimana?
Tidak seperti sistem pengurusan pangkalan data hubungan (RDBMS) lain yang menimbulkan ralat apabila fungsi agregat muncul dalam senarai SELECT tanpa klausa GROUP BY, MySQL membenarkannya. Tingkah laku ini telah menarik minat pembangun, membawa kepada pertanyaan berikut:
Mengapa MySQL membenarkan fungsi agregat tanpa GROUP BY?
Jawapan:
Falsafah reka bentuk MySQL membenarkan fungsi lanjutan melebihi standard SQL. Membenarkan fungsi agregat tanpa GROUP BY ialah satu sambungan sedemikian.
Apabila melaksanakan pertanyaan seperti SELECT col1,col2,sum(col3) FROM tbl1, MySQL secara berkesan mengumpulkan baris mengikut semua lajur bukan agregat (dalam ini kes, col1 dan col2). Ia kemudian mengembalikan hasil fungsi agregat (jumlah col3) untuk kumpulan tak tentu tunggal.
Versi MySQL yang lebih awal membenarkan tingkah laku ini secara lalai. Walau bagaimanapun, bermula dari MySQL 5.7.5, mod SQL ONLY_FULL_GROUP_BY telah diperkenalkan untuk menguatkuasakan pematuhan SQL yang lebih ketat dan tidak membenarkan pertanyaan dengan fungsi agregat tanpa GROUP BY. Mod ini boleh didayakan atau dilumpuhkan mengikut keperluan. Secara lalai, ia didayakan dalam MySQL versi 8.0 dan lebih tinggi.
Nota Tambahan:
Atas ialah kandungan terperinci Fungsi Agregat MySQL Tanpa KUMPULAN OLEH: Mengapa dan Bagaimana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!