laravel ORM的addSelect添加的字段,如何加入条件筛选
如标题…
Thing::addSelect([
'total_cell_number'=>Cell::whereColumn('thing_id','things.id')
->selectRaw('SUM(cell_number)')
])->withCasts([
'total_cell_number'=>'int'
])->get();
像这样拼接上去的 ‘total_cell_number’如何用条件筛选
比如和0作比较?
如何和数据库字段作列比较?
试了whereRaw、where均无效
首先说明下
SQL
语句,打印一下SQL
语句,会发现total_cell_number
是通过子查询在数据库中临时拼接的一个新字段,这个新字段并不在数据表中,所以不能使用WHERE
关键字,你需要使用HAVING
关键字(这个是mysql
的知识体系)。知道这个知识点后,就好办了,
Laravel
的Illuminate\Database\Query\Builder
提供了having
方法:补充个链接吧:正确理解MySQL中的where和having的区别