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
Barbara Streisandoriginal
2025-01-04 12:20:36212parcourir

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',''));
  • 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`
  • 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`

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:
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