如何在Eloquent中使用IF SQL?

时间:2019-05-16 13:06:04

标签: laravel eloquent

不知道如何在Laravel / Eloquent中编写此代码。

试图使用when(),但对我不起作用。

$sql_string = "SELECT * 
        FROM 
            (
            SELECT name, priority, zone, hours, price, 
            IF (@day_hours >= ?, @day_hours := 0, @day_hours) AS hours_if, 
            IF (@day_hours = 0, @days := @days + 1, @days) AS days_if, 
            @days AS day, 
            @day_hours := @day_hours + hours AS day_hours, 
            @budget := @budget - price AS budget 
            FROM $table_name, (select @day_hours := 0, @days := 0, @budget := ?) AS INIT
            ORDER BY priority, zone 
            ) AS DATA 
        WHERE budget > 0 AND day <= ?";

我希望准备好使用口才代码:D

1 个答案:

答案 0 :(得分:0)

您可以在以下情况下使用DB::Raw

->select(DB::raw('IF (@day_hours >= ?, @day_hours := 0, @day_hours) AS hours_if'))