Laravel Eloquent에서 SQL_MODE=ONLY_FULL_GROUP_BY 비호환성을 수정하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-18 12:27:03
원래의
887명이 탐색했습니다.

How to Fix SQL_MODE=ONLY_FULL_GROUP_BY Incompatibility in Laravel Eloquent?

Laravel Eloquent의 SQL_MODE=ONLY_FULL_GROUP_BY 비호환성 수정

Laravel Eloquent는 강력한 데이터 조작 작업을 허용하지만 때로는 쿼리를 실행할 때 오류가 발생할 수 있습니다. . 이러한 오류 중 하나는 특히 sql_mode=only_full_group_by가 활성화된 경우 MySQL 엄격 모드 설정과 관련이 있습니다.

오류:

아래와 같은 쿼리를 실행하면, 오류가 발생할 수 있습니다.

$products = Product::where('status', 1)
            ->where('stock', '>', 0)
            ->where('category_id', '=', $category_id)
            ->groupBy('store_id')
            ->orderBy('updated_at', 'desc')
            ->take(4)
            ->get();
로그인 후 복사

오류 메시지는 일반적으로 다음과 같습니다.

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 (SQL: select * from products where
status = 1 and stock > 0 and category_id = 5 group by store_id
order by updated_at desc limit 4)
로그인 후 복사

해결책:

이 문제에 대한 해결 방법 오류는 MySQL 엄격 모드 설정을 비활성화하는 것입니다. 이는 Laravel 애플리케이션의 데이터베이스 연결 설정에서 수행할 수 있습니다.

<code class="php">'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]</code>
로그인 후 복사

strict를 false로 설정하면 only_full_group_by 모드가 효과적으로 비활성화되고 SELECT 목록에서 집계되지 않은 열이 허용됩니다.

추가 팁:

이 문제와 관련된 고급 구성 옵션에 대해서는 Matt Stauffer의 블로그 게시물을 참조하세요. only_full_group_by를 비활성화하면 특정 유형의 쿼리에 영향을 미칠 수 있으므로 변경하기 전에 애플리케이션의 요구 사항을 고려해야 합니다.

위 내용은 Laravel Eloquent에서 SQL_MODE=ONLY_FULL_GROUP_BY 비호환성을 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!