Skip to content

Mengatasi Error query GROUP BY di Mysql 5.7

Posted on:October 20, 2018 at 04:55 PM

Error seperti ini terjadi karena terdapat sql_mode only_full_group_by di settingan mysql. Contoh error yang tampil ketika mengeksekusi query group by.

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘support_desk.mod_users_groups.group_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Sedangkan cara simple agar querynya berjalan dengan menambahkan id dari table tersebut, misal

  SELECT * FROM users GROUP BY salary, id ORDER BY salary ASC

Dengan menambahkan id di group by query tersebut bisa dijalankan, namun bukan itu hasil yang diinginkan.

Cara mengatasinya:

  [mysqld]
  sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Saya kemarin mendapatkan error seperti di atas di local saya, dan membutuhkan waktu sekitar 30 menit untuk mencari tahu penyebab dan cara mengatasi. Semoga dengan saya menuliskan kembali dan membagikan hal yang pernah saya alami tersebut bisa memangkas waktu teman-teman agar tidak terbuang banyak. Jika ada yang perlu didiskusikan, silakan berkomentar di bawah. Saya sangat senang jika teman-teman mengajak diskusi dengan saya.

Semoga bermanfaat