Heim > Datenbank > MySQL-Tutorial > Wie behebe ich den MySQL-Fehler „only_full_group_by'?

Wie behebe ich den MySQL-Fehler „only_full_group_by'?

DDD
Freigeben: 2025-01-25 03:02:10
Original
361 Leute haben es durchsucht

How to Resolve MySQL's

Mysql 5.7

Fehler: Detaillierte Erläuterung und Lösung only_full_group_by In MySQL 5.7 ist der Fehler "Ausdruck 1 der Select List nicht in Gruppen" und "nur" nur_ful_group_by "verwirrend sein. Dieser Artikel zielt darauf ab, dieses Problem zu klären und Lösungen bereitzustellen.

Problemanalyse

5.7 Mit der vorherigen MySQL -Version können die Auswahlliste Spalten einbeziehen, die in der Gruppe by Klausel angezeigt werden, auch wenn die Werte dieser Spalten im Paket unterschiedlich sein können. In Version 5.7 wurde jedoch das Standardverhalten geändert, und dies darf dies nur dann tun, wenn diese Spalten aggregiert sind. Dies wird im Modus "nur_full_group_by" erzwungen.

Problemlösung

Der Fehler zeigt an, dass die Abfrageliste eine kompromisslose Spalte enthält, die keine Funktionsabhängigkeiten zwischen den Spalten in der Spalte in der Gruppe nach Klausel aufweist. Um dieses Problem zu lösen, können Sie die kompromisslosen Spalten löschen oder der Gruppe nach Klausel hinzufügen. Empfohlene Lösung

Für diese spezielle Abfrage wird empfohlen, die Gruppe "Group_ID" nach Klausel hinzuzufügen, um sicherzustellen, dass alle kompromisslosen Spalten mit den Spalten in der Gruppe nach Klausel zusammenhängen:

Andere Vorsichtsmaßnahmen

In mehrerer Abfrage ist es am besten, den Namen der Tabellennamen oder alias Limited List zu verwenden, wie in der empfohlenen Lösung gezeigt.
<code class="language-sql">SELECT
  g.group_id AS 'value',
  g.group_name AS 'text'
FROM
  mod_users_groups g
LEFT JOIN
  mod_users_data d ON g.group_id = d.group_id
WHERE
  g.active = 1
  AND g.department_id = 1
  AND g.manage_work_orders = 1
  AND g.group_name != 'root'
  AND g.group_name != 'superuser'
GROUP BY
  g.group_id,
  g.group_name
HAVING
  COUNT(d.user_id) > 0
ORDER BY
  g.group_name</code>
Nach dem Login kopieren

Es wird nicht empfohlen, "nur_full_group_by" auszuschalten, da es nicht kompromisslose Spalten ermöglicht, was zu inkonsistenten Ergebnissen führen kann und unvorhersehbar ist.

Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „only_full_group_by'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage