Laravel:WHERE子句中的数学

时间:2016-12-27 16:29:11

标签: php mysql laravel orm eloquent

在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'

2 个答案:

答案 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');