查询核心数据中的每个第n个元素

时间:2011-07-31 11:47:02

标签: sql ios core-data nsfetchedresultscontroller

如何查询核心数据中的每个nTh(或每秒)元素?

以下是我在SQL中要做的事情:

SELECT * FROM TABLE_NAME 
WHERE (ROWID, 0) IN (SELECT ROWID, MOD(ROWID, N) FROM TABLE_NAME);
提前谢谢。

2 个答案:

答案 0 :(得分:2)

你做不到。

核心数据不是SQL。实体不是表格。对象不是行。属性不是列。关系不是联接。核心数据是一个对象图管理系统,可能会或可能不会持久保存对象图,并且可能会或可能不会使用远远落后的SQL来执行此操作。试图用SQL术语来思考核心数据将导致你完全误解核心数据并导致更多的悲伤和浪费时间。

托管对象在表中不作为“元素”存在,而在对象图中不存在,对象图是由数据模型中定义的关系连接的单个对象的Web。即使您使用SQL存储的选项,表中分解对象的属性的实际物理位置也与对象图中对象的位置无关。

如果你想要每个第n个对象,你首先要使用排序描述符进行提取,按照你想要的任何条件对对象进行排序,然后你将获取fetch返回的数组的每个第n个元素。

答案 1 :(得分:0)

SELECT * FROM table_name WHERE mod(ROWID,2)= 0

如果ROWID是表中的字段。请注意,表中的行没有“序列号”,但您可以在查询结果中构造序号