Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQLSTATE[42000]:Kesalahan sintaks atau pelanggaran akses:1055 Ekspresi #3 dari daftar SELECT tidak ada dalam klausa GROUP BY dan berisi nonagregated

Jalankan:

sudo mysql -u root -p
mysql> SELECT @@global.sql_mode;

(Kemudian secara opsional salin output ke catatan Anda di suatu tempat jika Anda ingin kembali ke pengaturan asli nanti.)

Dan ubah Mode SQL untuk Instans Server MySQL Anda:

mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

(Jika Anda ingin memutar kembali, Anda dapat menjalankan sesuatu seperti mysql> SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; menggunakan nilai yang Anda simpan.)

Cara yang lebih permanen (yang akan bertahan dari restart MySQL) adalah menggunakan konfigurasi MySQL. Pergi ke /etc/mysql/my.cnf (atau Anda mungkin perlu menjalankan sudo vim /etc/mysql/mysql.conf.d/mysql.cnf ):

  • Tambahkan bagian untuk[mysqld] dan tepat di bawahnya tambahkan pernyataansql_mode = "" atau sesuatu seperti sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" .

  • Mulai ulang layanan MySQL:

     sudo systemctl restart mysql
    

(atau sudo service mysql restart )

Lihat juga https://dba.stackexchange.com/a/113153/18098



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menerapkan algoritme peringkat Berita Peretas di SQL

  2. Bagaimana cara menghapus baris mysql setelah waktu berlalu?

  3. Meningkatkan kinerja Kueri MySQL - Permintaan berat matematika

  4. Apakah masuk akal untuk menggunakan indeks yang memiliki kardinalitas rendah?

  5. Periksa apakah ada database (MySQL) dan jika tidak buat di PHP