我试图了解Laravel的Eloquent ORM是如何工作的,并且正在查看以下MySQL查询:
SELECT id, name, date FROM tablename GROUP BY name ORDER BY date
Run Code Online (Sandbox Code Playgroud)
使用GROUP BY始终返回最旧的值name.有没有办法返回最新的价值?
尝试以下代码,
Tablename::select('id', 'name', DB::raw('max(date) as latest_date'))
->groupBy('name')
->orderBy('latest_date')
->get()
Run Code Online (Sandbox Code Playgroud)
这是一个有效的 SQL 查询,它仅获取与您选择的内容唯一的最新结果a.id = b.id- 如果您想使用唯一的名称,那么它就是a.name = b.name.
SELECT DISTINCT a.*
FROM tablename a
LEFT JOIN tablename b ON a.id = b.id
AND a.date < b.date
WHERE b.date IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4333 次 |
| 最近记录: |