php - 查询以检索 Laravel 5.2 中历史表中的最新条目

标签 php mysql controller laravel-5

这是表格

表:学生历史记录

id   |  date     | name  | grade  | subject
---- | ------    |------ |--------|------
1    | 5/1/2017  |Mark   |   a    |   science
2    | 7/1/2016  |Earl   |   c    |   english
3    | 2/1/2015  |John   |   a    |   english
4    | 6/1/2016  |Mike   |   c    |   science
5    | 4/1/2016  |Matt   |   e    |   english
6    | 2/1/2017  |Mark   |   d    |   science
7    | 3/1/2016  |Earl   |   a    |   english
8    | 7/1/2015  |John   |   d    |   english
9    | 8/1/2016  |Mike   |   c    |   science

我想要发生的事情是只为有英语成绩的学生填写最新成绩。它应该像这样显示

7/1/2016 Earl c
7/1/2015 John d
4/1/2016 Matt e

我得到了这个,但它没有给出最新的基于

$englishgrades = StudentHistory::('日期', '姓名', '成绩') ->where('主题', '英语') ->groupBy('名称') ->get();

请帮忙

最佳答案

您可以执行降序并接收第一行,这将是数据库中的最后一行。但问题是你存储日期的方式是错误的。正如@Strawberry 所提到的,它不清楚日期或月份。我建议您使用 mysql datetime 选项,然后您可以简单地执行我在下面发布的代码。在这种情况下,您可能必须以正确的方式解析每个日期

$englishgrades = StudentHistory::select('date', 'name', 'grade')
->where('subject', 'english')
->groupBy('name')
->orderBy('date','desc')
->get();

关于php - 查询以检索 Laravel 5.2 中历史表中的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910090/

相关文章:

php - 在将文本存储到数据库之前压缩文本

javascript - PHP strtotime 给了我一个多小时

用于从数据库获取数据然后显示在表中的 PHP 代码

javascript - Rails 中的 respond_to 出现未知格式错误。正确尝试实现轮询更新

java - 在 spring Controller 中注入(inject)类对象的方法?

asp.net-mvc - 将 Json 对象从 Controller 操作返回到 jQuery

php - 通过激活链接验证电子邮件帐户

php - 根据正则表达式验证字符串

mysql - 是否可以选择并将其结果插入 MySQL?

php - 向数据库记录发送电子邮件时出现 Codeigniter 错误