Maison > base de données > tutoriel mysql > Comment corriger l'erreur « Liste SELECT incompatible avec GROUP BY » de MySQL ?

Comment corriger l'erreur « Liste SELECT incompatible avec GROUP BY » de MySQL ?

Barbara Streisand
Libérer: 2025-01-04 12:20:36
original
208 Les gens l'ont consulté

How to Fix MySQL's

Résolution de l'erreur « Liste SELECT incompatible avec GROUP BY » avec SQL_MODE

Message d'erreur de MySQL :

Expression n°1 de La liste SELECT n'est pas dans la clause GROUP BY et contient une colonne non agrégée 'returntr_prod.tbl_customer_pod_uploads.id' qui ne dépend pas fonctionnellement des colonnes de la clause GROUP BY ; ceci est incompatible avec sql_mode=only_full_group_by

indique que la liste SELECT contient des colonnes non agrégées qui ne sont pas dans la clause GROUP BY. Cette erreur se produit lors de l'utilisation du mode SQL only_full_group_by de MySQL.

Solutions potentielles :

  • Changer le mode SQL :

Vous pouvez désactiver temporairement le mode only_full_group_by en exécutant ce qui suit commande :

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Copier après la connexion
  • Modifier la requête :

Vous pouvez également modifier votre requête pour inclure toutes les colonnes de la liste SELECT dans le GROUPE Clause BY :

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`
Copier après la connexion
  • Utiliser l'agrégateur Fonctions :

Pour les meilleures pratiques en matière de langage de requête structuré, évitez de sélectionner toutes les colonnes. Utilisez plutôt des fonctions d'agrégation sur les colonnes de regroupement, telles que :

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`
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal