Rumah > Artikel > pangkalan data > Berikut ialah beberapa pilihan tajuk, dengan mengingati format soal jawab: Pilihan 1 (Memfokus pada ralat): * Ralat Pertanyaan Agregat MySQL: \"only_full_group_by\" - Cara Membetulkan \'PDO
Ralat Pertanyaan Agregat MySQL: Menyelesaikan masalah 'only_full_group_by' Mod
Dalam MySQL 5.7.5 dan ke atas, perubahan halus namun memberi kesan telah diperkenalkan, mempengaruhi pertanyaan agregat seperti yang dikemukakan dalam perbincangan ini. Ralat "Pengecualian tidak ditangkap 'PDOException'" yang terkenal adalah menunjukkan pertanyaan yang melanggar mod SQL only_full_group_by SQL, yang diperkenalkan dalam MySQL 5.7.5.
Mod ini menguatkuasakan prinsip lama dalam pangkalan data hubungan: apabila melaksanakan pengagregatan (kiraan, jumlah, maks, dsb.), semua lajur bukan teragregat mesti disertakan dalam klausa GROUP BY. Pertanyaan yang melanggar peraturan ini tidak lagi akan diabaikan secara senyap seperti yang terdapat dalam versi MySQL terdahulu.
Memahami alasan di sebalik perubahan ini adalah penting. Dengan menghalang pertanyaan dengan lajur tidak teragregat dalam klausa SELECT tetapi tidak dalam klausa GROUP BY, MySQL memastikan ketepatan dan ketekalan data. Pertanyaan sedemikian boleh menghasilkan keputusan yang samar-samar, selalunya membawa kepada analisis yang salah dan membuat keputusan.
Mengatasi ralat ini memerlukan pendekatan serampang dua mata:
Mengubah suai MySQL Tetapan (Pilihan 1):
Memfaktorkan Semula Pertanyaan (Pilihan 2):
Penyelesaian yang ideal adalah untuk mengubah suai pertanyaan untuk mematuhi mod only_full_group_by. Ini melibatkan memasukkan semua lajur tidak teragregat dalam klausa GROUP BY:
Pengecualian kepada Peraturan:
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, dengan mengingati format soal jawab: Pilihan 1 (Memfokus pada ralat): * Ralat Pertanyaan Agregat MySQL: \"only_full_group_by\" - Cara Membetulkan \'PDO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!