Heim >Datenbank >MySQL-Tutorial >Wie behebe ich den MySQL-Fehler „SELECT-Liste ist nicht in der GROUP BY-Klausel'?

Wie behebe ich den MySQL-Fehler „SELECT-Liste ist nicht in der GROUP BY-Klausel'?

DDD
DDDOriginal
2024-12-22 16:40:13193Durchsuche

How to Resolve MySQL's

Fehlerbehebung „SELECT-Liste ist nicht in der GROUP BY-Klausel“ Fehler mit MySQL

Der Fehler „Ausdruck Nr. 1 der SELECT-Liste ist nicht in „GROUP BY-Klausel und enthält nicht aggregierte Spalte“ tritt in MySQL normalerweise auf, wenn das Ergebnis einer Abfrage nicht aggregierte Spalten enthält, die nicht in der GROUP BY-Klausel enthalten sind. Dies liegt an der Einstellung sql_mode=only_full_group_by, die strengere Gruppierungsregeln erzwingt.

Um dieses Problem zu beheben, gibt es mehrere Lösungen:

  1. Deaktivieren Sie sql_mode=only_full_group_by: Dies kann wie folgt erfolgen Befehl:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
  1. Alle ausgewählten Spalten in die GROUP BY-Klausel einschließen: Dadurch wird sichergestellt, dass alle Spalten in der SELECT-Liste in die GROUP BY-Operation einbezogen werden. Zum Beispiel:
SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`, `id`
  1. Aggregationsfunktionen verwenden: Anstatt einzelne Spalten auszuwählen, verwenden Sie Aggregationsfunktionen wie SUM(), COUNT() oder AVG( ), um die Daten zu gruppieren. Dadurch entfällt die Notwendigkeit der GROUP BY-Klausel. Zum Beispiel:
SELECT `proof_type`, COUNT(*) AS `document_count`
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`

Es ist wichtig zu beachten, dass das Ändern des SQL-Modus nicht die beste Vorgehensweise ist. Die bevorzugte Lösung besteht darin, die Abfrage so zu ändern, dass sie den strengeren Gruppierungsregeln entspricht.

Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „SELECT-Liste ist nicht in der GROUP BY-Klausel'?. 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