Kembali ke blog
MySQL 09 June 2026 1 menit baca

Cara Mengatasi MySQL only_full_group_by

Memahami penyebab error only_full_group_by dan cara memperbaiki query agar tetap valid tanpa mematikan mode ketat MySQL.

A Ditulis oleh Andri Syahputra
Cara Mengatasi MySQL only_full_group_by

Error only_full_group_by biasanya muncul setelah pindah server atau naik versi MySQL. Pesannya terlihat menakutkan, padahal MySQL hanya sedang menolak query yang ambigu.

Penyebabnya

Query melakukan GROUP BY namun memilih kolom yang tidak ada di dalam GROUP BY dan tidak dibungkus fungsi agregat. MySQL tidak dapat menentukan baris mana yang harus dipakai.

SELECT unit_id, name, COUNT(*)
FROM employees
GROUP BY unit_id;

Perbaikan yang Disarankan

Tambahkan kolom tersebut ke GROUP BY, atau bungkus dengan fungsi agregat bila memang hanya butuh satu nilai perwakilan.

SELECT unit_id, MAX(name) AS name, COUNT(*) AS total
FROM employees
GROUP BY unit_id;

Jika Butuh Baris Utuh

Ketika yang dibutuhkan adalah baris lengkap per grup, gunakan subquery atau join terhadap hasil agregasi. Pendekatan ini lebih akurat dibanding mengandalkan nilai acak.

Mematikan Mode Ketat

Mengubah sql_mode memang menghilangkan error, tetapi sebaiknya jadi jalan terakhir. Mode ketat justru membantu menemukan query yang hasilnya tidak dapat diandalkan.

Pada Laravel, perilaku ini dapat diatur lewat opsi strict pada konfigurasi koneksi database.

Punya rencana project yang ingin dibangun?

Ceritakan kebutuhannya. Saya bantu petakan alur kerja, ruang lingkup, dan tahapan pengerjaannya.

Hubungi Saya