;

Mengatasi "Syntax error or access violation: 1055 ‘field’ isn’t in GROUP BY" pada Laravel

Mengatasi "Syntax error or access violation: 1055 ‘field’ isn’t in GROUP BY" pada Laravel




Error ini saya dapat ketika sedang menampilkan data dengan menggunakan GROUP BY pada query saya. hal ini cukup membuat saya bingung , karena ketika mencoba querynya di console phpmyadmin, querynya berjalan dengan baik tanpa ada masalah sama sekali. Namun ketika saya jalankan di dalam aplikasi Laravel, saya mendapatkan error : Syntax error or access violation: 1055 .



setelah mencari-cari di google dan stackoverflow, ternyata masalahnya ada pada strict mode yang di set true atau lebih tepatnya pada ONLY_FULL_GROUP_BY pada MySql.

Berikut ini adalah solusi untuk mengatasi "Syntax error or access violation: 1055 ‘field’ isn’t in GROUP BY" pada laravel

Nonaktifkan strict mode di driver MySQL Laravel. Buka file config/database.php
ubah

'strict' => true,

menjadi
'strict' => false,

Sebelum memutuskan untuk merubah setting strict menjadi false perlu anda ketahui penyebab dari error tersebut. Masalah tersebut sebenarnya karena ONLY_FULL_GROUP_BY pada mysql yang sekarang secara default di set "aktif" Baca sqlmode_only_full_group_by. Mematikan fitur tersebut dengan mengatur nilai menjadi non strict (false) menyebabkan data hasil query (kemungkinan) jadi tidak reliabel.

karena ketika kita melakukan grouping data, kolom yang di select yang tidak diberikan fungsi aggregate, artinya harus disebut di dalam group by, jika tidak maka MySql tidak tahu data mana yang akan diambil, dengan mengkatifkan fitur non strict (true) maka MySql akan mengambil data terakhir dari banyak nilai untuk kolom tersebut, jadi kita tidak punya kontrol terhadap nilai data tersebut.

Sekian dan terima kasih...

Comments