Heim >Datenbank >MySQL-Tutorial >Wie behebe ich den MySQL-Fehler „SELECT-Liste inkompatibel mit GROUP BY'?

Wie behebe ich den MySQL-Fehler „SELECT-Liste inkompatibel mit GROUP BY'?

Barbara Streisand
Barbara StreisandOriginal
2025-01-04 12:20:36165Durchsuche

How to Fix MySQL's

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:

  • SQL-Modus ändern:

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',''));
  • Abfrage ändern:

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`
  • Aggregator verwenden Funktionen:

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn