Laravel: 구문 오류 또는 액세스 위반: WhereIn 및 GroupBy 사용 시 1055 오류
특정 행 데이터 검색의 경우 Laravel을 사용하면 다음을 수행할 수 있습니다. 동일한 쿼리에서 WhereIn과 GroupBy를 모두 사용합니다. 그러나 이로 인해 "구문 오류 또는 액세스 위반: 1055 오류"가 발생할 수 있습니다.
오류 원인
이 오류는 다음과 같은 경우에 발생합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!