Ralat MySQL: 'tiada dalam GROUP BY'
MySQL sering menjana ralat "tidak dalam GROUP BY" apabila mendapatkan semula data daripada jadual menggunakan pertanyaan khusus. Memahami punca dan cara menyelesaikannya adalah penting.
Latar Belakang:
MySQL memerlukan semua lajur yang disertakan dalam klausa SELECT, kecuali fungsi agregat seperti COUNT, mesti juga dimasukkan ke dalam klausa GROUP BY. Ini memastikan bahawa keputusan adalah berdasarkan kumpulan data dengan nilai yang berbeza dalam lajur yang ditentukan.
Contoh Ralat:
Dalam contoh yang disediakan, ralat timbul apabila menggunakan pertanyaan:
SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name` ORDER BY `count` DESC LIMIT 0, 25
MySQL mengesan bahawa kiraan lajur tidak terdapat dalam GROUP BY klausa.
Penyelesaian:
Untuk menangani ralat ini, anda mesti memasukkan semua lajur dalam klausa SELECT dalam klausa GROUP BY. Dalam kes ini, pertanyaan yang diubah suai ialah:
SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name`, `type`, `language`, `code` ORDER BY `count` DESC LIMIT 0, 25
Nota Tambahan:
Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'tidak ada dalam GROUP BY', dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!