Laravel Eloquent クエリエラーを解決する方法: sql_mode=only_full_group_by と互換性がありません?

Patricia Arquette
リリース: 2024-10-18 12:17:02
オリジナル
541 人が閲覧しました

How to Resolve Laravel Eloquent Query Error: Incompatible with sql_mode=only_full_group_by?

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート