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