phpclickhouse-laravel icon indicating copy to clipboard operation
phpclickhouse-laravel copied to clipboard

Problem with QueryGrammar::prepareParameters

Open xdendev opened this issue 2 years ago • 0 comments
trafficstars

Hello, thanks for ur package. We integret CH very faster with ur help! But i got problem with bindings, if we have many wheres[], bind pos :0 in last where will has incorrect value when use Eloquent Builder

Code:

$query = Log::query();

$query->where(function ($query)  use ($value) { 
  return $query
             ->orWhere('column1', 'like', '%test%')
             ->orWhere('column2', 'like', '%test%')
             ->orWhere('column3', 'like', '%test%')
             ->orWhere('column4', '=', 0);
});

// some scenario

$query->whereIn('column5', [4]);

Prepare: select count(*) as aggregate from "logs" where ("column1" like :0 or "column2" like :1 or "column3" like :2 or "column4" = :3) and "logs"."column5" in (:0)

Bindings:

 0 => "%test%"
 1 => "%test%"
 2 => "%test%"
 3 => 0
 4 => "4"

Sql: select count(*) as aggregate from "logs" where ("column1" like '%test%' or "column2" like '%test%' or "column3" like '%test%' or "column4" = 0) and "logs"."column5" in ('%test%') // not "4" (:4)

xdendev avatar Oct 04 '23 15:10 xdendev