在SQL中,执行以下操作非常简单:
SELECT * FROM properties WHERE (price / acres) = 3000;
这将选择“每英亩价格”为3000的每个房产
我希望在Laravel这样做。我尝试了以下方法:
Property::where('price / acres', 3000)->get();
然而,这会在反引号中包装列标题,创建以下SQL:
select * from `properties` where `price / acres` = 3000
这显然失败了(显然)错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'price / acres' in 'where clause'
答案 0 :(得分:6)
您可以像这样使用whereRaw
:
Property::whereRaw('(price / acres) = 3000')->get();
答案 1 :(得分:0)
你是对的,你不能归因于Laravel那样的陈述。您始终拥有的一个选项是使用数据库外观提交原始SQL语句 - https://laravel.com/docs/5.3/database#running-queries
例如:
$price_per_acre = DB::select('SELECT * FROM properties WHERE (price / acres) = 3000');