>백엔드 개발 >PHP 튜토리얼 >Laravel WhereIn 및 GroupBy: MySQL의 1055 오류를 해결하는 방법?

Laravel WhereIn 및 GroupBy: MySQL의 1055 오류를 해결하는 방법?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-07 16:24:13776검색

Laravel WhereIn and GroupBy: How to Resolve MySQL's 1055 Error?

Laravel: 구문 오류 또는 액세스 위반: WhereIn 및 GroupBy 사용 시 1055 오류

특정 행 데이터 검색의 경우 Laravel을 사용하면 다음을 수행할 수 있습니다. 동일한 쿼리에서 WhereIn과 GroupBy를 모두 사용합니다. 그러나 이로 인해 "구문 오류 또는 액세스 위반: 1055 오류"가 발생할 수 있습니다.

오류 원인

이 오류는 다음과 같은 경우에 발생합니다.

  • MySQL 설정에서 엄격 모드가 활성화되어 있습니다.
  • id 필드, WhereIn 조건에 사용되는 이는 GroupBy 필드 목록에 포함되지 않습니다.

Solutions

Disable Strict Mode

'strict' =>를 설정하여 MySQL의 엄격 모드를 비활성화할 수 있습니다. config/database.php 파일의 'mysql' 배열에 false가 있습니다.

'mysql' => [
    ...
    'strict'   => false,
    ...
],

MySQL 옵션에 모드 추가

또는 엄격 모드를 활성화된 상태로 둘 수도 있습니다. 'mysql'의 'modes' 옵션에 특정 모드를 추가합니다. array:

'mysql' => [
    ...
    'strict' => true,
    'modes' => ['STRICT_TRANS_TABLES'],
    ...
],

WhereIn에 GroupBy 필드 통합

WhereIn 조건에 사용된 id 필드가 GroupBy 필드 목록에도 포함되어 있는지 확인하세요. 이렇게 하면 오류 발생을 방지할 수 있습니다.

$loadids = explode("#@*", $reciptdet->loading_id);
$loadingdatas = DB::table('loading')
    ->groupBy(['vehicle_no', 'id'])
    ->whereIn('id', $loadids)
    ->get();

이러한 솔루션을 구현하면 동일한 쿼리에서 WhereIn 및 GroupBy를 사용할 때 "구문 오류 또는 액세스 위반: 1055 오류"를 해결할 수 있습니다.

위 내용은 Laravel WhereIn 및 GroupBy: MySQL의 1055 오류를 해결하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.