"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Laravel WhereIn 및 GroupBy: MySQL의 1055 오류를 해결하는 방법?

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

2024년 12월 21일에 게시됨
검색:758

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

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

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

오류 원인

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

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

솔루션

엄격 모드 비활성화

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

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

MySQL 옵션에 모드 추가

또는 엄격 모드를 활성화한 상태로 두고 'mysql' 배열의 '모드' 옵션에 특정 모드를 추가할 수 있습니다.

'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 오류"를 해결할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3