Rumah >pangkalan data >tutorial mysql >Mengapakah Saya Tidak Boleh Mengagregatkan Pertanyaan dalam MySQL Tanpa Klausa MENGIKUT KUMPULAN?
Mengagregatkan Pertanyaan tanpa GROUP BY dalam MySQL
Pertanyaan anda menghadapi ralat sintaks semasa mengagregatkan data tanpa menyatakan klausa GROUP BY. Tingkah laku ini telah diperkenalkan dalam MySQL 5.7.5 sebagai sebahagian daripada usaha untuk memastikan integriti pengagregatan data.
Mesej ralat menerangkan bahawa lajur tidak teragregat, seperti id dalam pertanyaan anda, tidak boleh muncul dalam SELECT senarai apabila fungsi agregat (seperti COUNT()) digunakan tanpa klausa GROUP BY. Ini memastikan bahawa hasil pengagregatan adalah tepat dan konsisten.
Menyelesaikan Ralat
Anda mempunyai dua pilihan untuk menyelesaikan ralat ini:
SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1
Sebagai alternatif, jika anda boleh memastikan bahawa lajur tidak teragregat (cth., id) dihadkan kepada satu nilai di WHERE klausa, anda boleh mengecualikannya daripada klausa GROUP BY. Rujuk pautan yang disediakan untuk contoh pengecualian ini.
Dengan menggunakan salah satu kaedah ini, anda boleh menyelesaikan ralat dan memastikan pengagregatan data yang betul dalam pertanyaan MySQL anda.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Mengagregatkan Pertanyaan dalam MySQL Tanpa Klausa MENGIKUT KUMPULAN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!