嘿,伙计们,我有一个简单的问题,我正在对一个selectRaw查询做一些数学运算,但我需要对结果进行四舍五入(例如,使用floor())。如何对我的selectRaw查询执行此操作?
$primer = DB::connection('lab_inv')
->table('products')
->join('primer_adaptor', 'products.id', 'primer_adaptor.Product_id')
->selectraw('primer_adaptor.Product_id, primer_adaptor.Primer_Name,
primer_adaptor.Amount / primer_adaptor.Amount_Run AS Amount,
products.Amount / (products.Amount_Run * products.Runs_week) AS Runs, (products.Runs / products.Runs_week) * 5 AS Running_days')
->get();发布于 2019-02-15 19:01:25
您可以像通常在原始MySQL查询中那样使用MySQL的FLOOR函数,例如
$sql = "pa.Product_id, pa.Primer_Name, pa.Amount / pa.Amount_Run AS Amount, ";
$sql .= "FLOOR(p.Amount / (p.Amount_Run * p.Runs_week)) AS Runs, ";
$sql .= "(products.Runs / products.Runs_week) * 5 AS Running_days";
$primer = DB::connection('lab_inv')
->table('products AS p')
->join('primer_adaptor AS pa', 'p.id', 'pa.Product_id')
->selectraw($sql)
->get();在这里,我刚刚介绍了您命名为"Runs“的别名,但是您可以随心所欲地使用FLOOR。
https://stackoverflow.com/questions/54707799
复制相似问题