Heim >Datenbank >MySQL-Tutorial >Wie behebe ich den MySQL-Fehler „SELECT-Liste inkompatibel mit GROUP BY'?
Fehler „SELECT-Liste inkompatibel mit GROUP BY“ mit SQL_MODE beheben
MySQL-Fehlermeldung:
Ausdruck Nr. 1 von Die SELECT-Liste befindet sich nicht in der GROUP BY-Klausel und enthält eine nicht aggregierte Spalte „returntr_prod.tbl_customer_pod_uploads.id“, das funktional nicht von den Spalten in der GROUP BY-Klausel abhängig ist; Dies ist nicht kompatibel mit sql_mode=only_full_group_by
zeigt an, dass die SELECT-Liste nicht aggregierte Spalten enthält, die nicht in der GROUP BY-Klausel enthalten sind. Dieser Fehler tritt auf, wenn MySQLs SQL-Modus „only_full_group_by“ verwendet wird.
Mögliche Lösungen:
Sie können den Modus „only_full_group_by“ vorübergehend deaktivieren, indem Sie Folgendes ausführen Befehl:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Alternativ können Sie Ihre Abfrage so ändern, dass alle Spalten aus der SELECT-Liste in die GRUPPE einbezogen werden BY-Klausel:
SELECT * FROM `tbl_customer_pod_uploads` WHERE `load_id` = '78' AND `status` = 'Active' GROUP BY `load_id`, `bill_id`, `latitude`, `langitude`, `proof_type`, `document_type`, `file_name`, `is_private`, `status`, `createdon`, `updatedon`
Für Best Practices in der strukturierten Abfragesprache sollten Sie vermeiden, alle Spalten auszuwählen. Verwenden Sie stattdessen Aggregatorfunktionen für die Gruppierungsspalten, wie zum Beispiel:
SELECT MAX(`id`) AS `id`, COUNT(*) AS `total_rows` FROM `tbl_customer_pod_uploads` WHERE `load_id` = '78' AND `status` = 'Active' GROUP BY `load_id`
Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „SELECT-Liste inkompatibel mit GROUP BY'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!