Error lengkapnya

“Illuminate \ Database \ QueryException (42000)
SQLSTATE[42000]: Syntax error or access violation: 1055 ‘web.data.id’ isn’t in GROUP BY (SQL: SELECT * FROM `data` WHERE created_at BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW() GROUP BY DAY(created_at) ORDER BY created_at ASC)

Solusi

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

'strict' => true,

menjadi

'strict' => false,

Join the Conversation

2 Comments

Your email address will not be published. Required fields are marked *

  1. Sebelumnya kita harus tahu apa yang sebenarnya terjadi sehingga kita bisa memutuskan untuk merubah setting menjadi non strict. Masalah tersebut sebenarnya karena ONLY_FULL_GROUP_BY pada mysql yang sekarang secara default aktif https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_only_full_group_by. Mematikan fitur tersebut dengan mengatur nilai menjadi non strict mengakibatkan data hasil query (kemungkinan) jadi tidak reliabel, karena ketika ketika kita melakukan grouping data, kolom yang di select yang tidak diberikan fungsi aggregate harus disebut di dalam group by, jika tidak maka mysql tidak tahu data mana yang akan diambil, dengan mengkatifkan fitur non strict maka mysql akan mengambil data terakhir dari banyak nilai untuk kolom tersebut, jadi kita tidak punya kontrol terhadap nilai data tersebut.

    1. Jadi gimana bang solusi untuk masalah tersebut karna saya juga permasalahanya sama ,error groupBy