Heim > Artikel > PHP-Framework > Über Laravel, das das MySQL-only_full_group_by-Problem löst
Stellen Sie die Methode zur Lösung des MYSQL-Problems only_Full_group_BY vor. Ich hoffe, es wird Freunden, die es brauchen, hilfreich sein! Nach MySQL 5.7 ist only_full_group_by standardmäßig aktiviert, was zu einer strengeren SQL-Erkennung führt, die zur Meldung des folgenden Fehlers führt:
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'edu.t_sounds.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Es waren viele Umwege erforderlich, um dieses Problem einzeln zu lösen gemäß der online gefundenen MethodeLösung
Überprüfen Sie sql_modeselect @@GLOBAL.sql_mode;SELECT @@SESSION.sql_mode
Überprüfen und ändern Sie zunächst die MySQL-Konfigurationsdatei my.cnf. Es ist peinlich, dass es kein ONLY_FULL_GROUP_BY
[mysqld]sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESgibt
[client]sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ausgibt, stellt sich heraus, dass das Programm eingerichtet ist.
-Test durch und lösen Sie das Problem direkt. Im Sinne der Root-Suche Lesen Sie dann weiter
Wenn strict = true
$result = \DB::select('SELECT @@GLOBAL.sql_mode'); print_r($result);exit; 结果: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION $result = \DB::select('SELECT @@SESSION.sql_mode'); print_r($result);exit; 结果: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Zusammenfassung: Nach vielen Umwegen und Mit viel Zeitaufwand wurde das Problem endlich gelöst und es war nicht nötig, irgendeine Konfiguration von MySQL zu ändern
Das obige ist der detaillierte Inhalt vonÜber Laravel, das das MySQL-only_full_group_by-Problem löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!