我在mysql中有一个数据库。我从.csv文件或.xls文件上传一组数据到数据库表。在检索期间,我只需要检索我最近上传到数据库中的表的值集。我不应该获得存储在表中的所有值。(只应检索最近上传到表中的值)。我怎么能用Laravel做到这一点?
答案 0 :(得分:1)
假设您有一个名为Users的表/模型;
$getLatestUsers=Users::orderBy('created_at','desc')->take(5)->get();
这将从数据库中获取最近的5条记录。
答案 1 :(得分:1)
这取决于你的考虑因素"最近"但你可以调整这样的功能以满足你的需求:
->where('created_at', '<', Carbon::now()->subMinutes(5)->toDateTimeString())
这将检索最近5分钟创建的元素,但Carbon提供了各种各样的substractors。
PD:请记住在名称空间声明下添加use Carbon\Carbon;
。
希望这会对你有所帮助。
答案 2 :(得分:1)
$latest= Users::orderBy('created_at','desc')->take(10)->get();
this will return 10 recent values
答案 3 :(得分:1)
(1)
在使用CSV和XML存储数据的表格中,使用迁移创建一个标记来标记您尚未处理的记录,例如is_processed
。将其设为默认值0
。
(2)
如果您已检索(处理过)数据,请将其设置为1
,以免再次处理。您可以根据您的情况中有意义的条件,使用查询手动执行此操作。
(3)
然后,在您存储新数据后,它们将自动设置为is_processed = 0
。这意味着您可以在之后识别它们,如下所示:
$unprocessedData = MyModel::where('is_processed', 0)->get();
如果需要,您也可以订购它们,但是 - 一般来说 - 这就是我采取的方法。