ホームページ  >  記事  >  データベース  >  MySQL の「SELECT リストの式が GROUP BY 句にありません」エラーを修正する方法?

MySQL の「SELECT リストの式が GROUP BY 句にありません」エラーを修正する方法?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-21 02:24:12449ブラウズ

How to Fix the MySQL

「SELECT リストの式が GROUP BY 句にありません」エラーのトラブルシューティング

問題:

GROUP BY 句に非集計列を含むクエリを実行すると、次のエラーが発生します:

#1055 - Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by

理由:

このエラーは、 GROUP BY 句に含まれない SELECT リスト内の集計列。 MySQL バージョン 5.7.12 では、only_full_group_by SQL モードがデフォルトで有効になっており、より厳格なグループ化ルールが適用されます。

解決策:

このエラーを解決するには、次のいずれかを実行できます。 :

1.非集計列を GROUP BY 句に追加します。

これにより、クエリは GROUP BY 句内のすべての列に同じ値を持つ行のみを返すようになります。

SELECT libelle, credit_initial, disponible_v, SUM(montant) AS montant 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type AND annee.id_annee = fiche.id_annee 
  AND annee = YEAR(CURRENT_TIMESTAMP)
GROUP BY libelle, credit_initial, disponible_v
ORDER BY libelle ASC;

2. Only_full_group_by SQL モードを無効にします:

これにより、クエリは GROUP BY 句内のすべての列に同じ値を持たない行を返すことができます。

sudo vim /etc/mysql/conf.d/mysql.cnf

ファイルの最後に次の行を追加します:

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

保存して vim を終了します。 MySQL を再起動します:

sudo service mysql restart

MySQL を再起動すると、クエリはエラーなしで正常に実行されるはずです。

以上がMySQL の「SELECT リストの式が GROUP BY 句にありません」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。