首页 > 解决方案 > Laravel Eloquent:选择一个字段等于另一个字段的记录

问题描述

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

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

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

标签: sqllaraveleloquentorm

解决方案


在查询构建器(和雄辩的)中等于另一个字段的字段上,whereColumn('Url', 'LIKE', 'ModelId')但是由于您在第二部分中有其他内容,您将需要使用原始查询,例如

DB::table('table')
   ->select('Id', 'Url', 'ModelId')
   ->where('Url', 'LIKE', DB::raw("CONCAT('%', ModelId, '%')"));

推荐阅读