Question: 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)
> 
> 
>

Answer: 
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](https://github.com/laravel/framework/issues/14997#issuecomment-242129087) about this issue.
Without modifiying `config\database.php` file
=============================================

**Set `'strict' => false`** in the `config\database.php` could be a **security issue**. So, a simple Laravel solution could be **first call `get()` and then `groupBy('vehicle_no)`**:

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

```