核心数据:从过滤元素中获取最新记录

Posted

技术标签:

【中文标题】核心数据:从过滤元素中获取最新记录【英文标题】:Core Data: Fetch for the latest record from filtered elements 【发布时间】:2015-11-30 09:12:57 【问题描述】:

我有什么:Core Data 及其表“访客”,其中包含一些字段,如“personName”、“date”、“floor”、“section”。

我想要什么:构造 Fetch Request 以获取由具体“地板”和“部分”过滤的访客集中的最新(按“日期”)条目。

换句话说,我需要得到 X'th 楼的最后一个访客的名字和它的 Y'th 部分。使用纯 SQL 可以通过以下方式完成:

SELECT * FROM Visitors where floor='2' and section='1' GROUP BY floor HAVING MAX(date)

SELECT personName, date, MAX(date) FROM Visitors WHERE floor='2' and section='1'

如何使用 Fetch Request 做到这一点?..

【问题讨论】:

这应该可以帮助您入门:Fetching the most recent item from CoreData in Swift. 但是我不需要只找到最新的访客。我需要找到混凝土地板+部分的最新访客。 这就是为什么我说“让你开始”而不是作为重复关闭:) - 你必须添加一个 predicate 来限制结果集到楼层/部分。 哇。我发现自己此时只是愚蠢。我的本地数据库中有不正确的值,因此基于我在此处询问之前测试过的简单 Predicate 的正确 Fetch Request 确实是正确的。但是不正确的存储值导致了不正确的结果。谢谢! 【参考方案1】:

这可以通过仅基于谓词和降序的常规 Fetch Request 来完成。

【讨论】:

以上是关于核心数据:从过滤元素中获取最新记录的主要内容,如果未能解决你的问题,请参考以下文章

使用基于属性的过滤子元素集获取核心数据实体

在 Django 中使用过滤器获取最新记录

如何过滤从 Core Data 获取的数据?

核心数据 - NSPredicate 过滤掉工作不正确的空字符串

Kettle实战之(2)过滤记录

根据多个下拉过滤获取数据值