Search code examples
phplaravellaravel-5qsqlquery

Laravel : Syntax error or access violation: 1055 Error


I want to use WhereIn and Groupby in the same query to fetch Result.

I've tried this:

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

But I got this error message:

SQLSTATE[42000]: Syntax error or access violation: 1055 'sbrtpt.loading.id' isn't in GROUP BY (SQL: select * from loading where id in (14, 15, 16) group by vehicle_no)


Solution

  • Short answer

    In config\database.php --> "mysql" array

    Set 'strict' => false to disable all.

    .... or

    You can leave 'strict' => true and add modes to "mysql" option in

    'mysql' => [
           ...
           ....
           'strict' => true,
           'modes' => [
                //'ONLY_FULL_GROUP_BY', // Disable this to allow grouping by one column
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_AUTO_CREATE_USER',
                'NO_ENGINE_SUBSTITUTION'
            ],
     ]
    

    Detailed answer

    You may not need to disable all strict options ... Kindly have a look on this answer about this issue.