【发布时间】:2026-01-20 08:35:01
【问题描述】:
我正在使用 eloqent 过滤一组产品:
Product::whereIn('color', $color)->whereIn('size', $size)->whereIn('price', $price)->get();
上面的每一个变量都是一个id数组
$color = [1,2,4,5]
我的问题是,当用户未能通过一组变量发送时,这是否效率低下,说他们不想要任何滤色器,所以数组将是:
$color = [];
我已经尝试过 ->toSql,它会生成 sql 语句:
select * from `products` where `color` in (?, ?) and 0 = 1 and `price` in (?, ?, ?, ?, ?)
在上面没有发送大小过滤器。
0 = 1 是什么意思?这是一种低效的处理方式吗?
【问题讨论】:
标签: mysql laravel laravel-4 eloquent laravel-5