Laravel Eloquent クエリ エラー: sql_mode=only_full_group_by
と互換性がありません Laravel Eloquent クエリを含む特定のシナリオでは、次のようなエラー メッセージが表示される場合があります。
<code class="text">SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'myshop.products.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by</code>
このエラーは MySQL Strict モードが原因で発生します。このモードでは、SELECT リスト内のすべての列がグループ化または集約される必要があります。
解決策: MySQL Strict モードを無効にする
この問題に対する最も簡単で効果的な解決策は、データベース接続設定で MySQL 厳密モードを無効にすることです。これは、database.php ファイルに次の設定を追加することで実現できます:
<code class="php">'connections' => [ 'mysql' => [ // Behave like MySQL 5.6 'strict' => false, // Behave like MySQL 5.7 'strict' => true, ] ]</code>
「strict」を「false」に設定すると、sql_mode=only_full_group_by.
高度な構成
MySQL 厳密モードの動作をさらに細かく制御するには、このテーマに関する Matt Stauffer のブログ投稿を参照してください。以上がLaravel Eloquent クエリエラーを解決する方法: sql_mode=only_full_group_by と互換性がありません?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。