Sql Laravel Elotenting:选择一个字段等于另一个字段的记录

Sql Laravel Elotenting:选择一个字段等于另一个字段的记录,sql,laravel,eloquent,orm,Sql,Laravel,Eloquent,Orm,如果这是重复的,我道歉。在雄辩的ORM中,选择一个字段等于另一个字段的记录是否可能?在MySQL中,这意味着: SELECT Id, Url, ModelId WHERE Url LIKE CONCAT('%', ModelId, '%') 在Eloquent中可以这样做吗?或者我必须使用原始查询?在查询生成器(和Eloquent)中等于另一个字段的字段是,其中列('Url','LIKE','ModelId'),但是由于在第二部分中有其他内容,您需要使用原始查询,例如 DB::table(

如果这是重复的,我道歉。在雄辩的ORM中,选择一个字段等于另一个字段的记录是否可能?在MySQL中,这意味着:

SELECT Id, Url, ModelId 
WHERE Url LIKE CONCAT('%', ModelId, '%')


在Eloquent中可以这样做吗?或者我必须使用原始查询?

在查询生成器(和Eloquent)中等于另一个字段的字段是
,其中列('Url','LIKE','ModelId')
,但是由于在第二部分中有其他内容,您需要使用原始查询,例如

DB::table('table'))
->选择('Id','Url','ModelId')
->其中('Url','LIKE',DB::raw('CONCAT('%',ModelId,'%')));

谢谢!是否可以将
whereColumn
与闭包一起使用以进行进一步处理?例如:如果我想
从表中选择*,其中column1=column2+column3
如果是,我如何使用它们?您仍然需要
DB::raw
,因为这是一个更复杂的操作,例如
WHERE('column1',DB::raw('column2+column3')