Salah satu error yang sering terjadi ketika melakukan query GROUP BY adalah error contains nonaggregated column. Error ini sering terjadi ketika ketika kita melakukan query GROUP BY tetapi kolom yang di SELECT tidak masuk ke dalam list GROUP BY.
Error Database MySQL tersebut lengkapnya adalah sebagai berikut:
SELECT list is not in GROUP BY clause and contains nonaggregated column... which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by - Invalid query:
Untuk mengatasi error tersebut ada dua macam cara. Anda bisa memilih salah satu cara yang paling mudah dan paling memungkinkan. Simak tutorial ini lebih lanjut.
Cara pertama adalah melakukan disable pada mode SQL: only_full_group_by
Untuk mengubah mode SQL, anda bisa masuk ke dalam console MySQL, kemudian jalankan command berikut:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
ATAU
Buka PHPMyAdmin dari Laragon.
Pilih server localhost.
Klik tab Variables.
Cari baris sql_mode, lalu klik tombol Edit atau Edit value.
Hapus ONLY_FULL_GROUP_BY dari daftar nilai yang ada. Pastikan Anda menyertakan koma dengan benar di antara nilai-nilai lainnya.
Klik Save atau tombol serupa untuk menyimpan perubahan.
Setelah itu, anda bisa menjalankan query lagi, seharusnya sudah tidak error.
Cara kedua Menonaktifkan secara Permanen
- edit my.ini di folder mysql
- tambahkan pada baris di bawah [mysqld]:
- sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
- edit laragon.ini
- tambahkan:
[mysqld]
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
Mulai ulang layanan Apache dan MySQL di Laragon agar perubahan diterapkan.
Tidak ada komentar:
Posting Komentar