php - 如何将此查询转换为 Laravel 查询生成器?

标签 php mysql laravel eloquent

我不确定 time_diff 方法中的内部 SQL:

SELECT t1.started_at as chain_break,
time_to_sec(timediff(t1.started_at,IFNULL(
                                          (SELECT MAX(t2.ended_at)
                                           FROM status_records t2
                                           WHERE t2.user_id=189
                                           AND t2.started_at< t1.started_at
                                          ), t1.started_at
                                        )
                        )
                ) / 3600 AS time_off 
FROM status_records t1 
WHERE t1.user_id=189 
ORDER BY t1.ended_at DESC 
LIMIT 6

除了将此查询作为原始 SQL 放入 DB::query 中之外,还有其他好方法吗?

最佳答案

是的,有,你可以使用selectRaw()将子查询添加为字段选择。要创建子查询,您可以创建另一个查询生成器。

关于php - 如何将此查询转换为 Laravel 查询生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035857/

相关文章:

php - 如何使用 php 访问不同页面中的 session 变量?

php - 我无法解决此解析错误 : syntax error, 意外 T_WHILE

php - laravel 从数据库中获取 microtime

php - JavaScript (document.write(function())) 值插入 php MySql 插入语句

mysql - 在 Laravel 中加入查询

php - Laravel:验证请求中的空数组

php - Jquery Ajax 调用能否从 PHP 成功接受对象?

php - 具有个人最大尝试次数的排队作业,如何?

javascript - 适用于 Javascript 和 PHP 的预制 XSS 预防库

php - CakePHP 3 中的内部联接不返回任何行