select 来自 table 的最后 20 个条目,对于 ID 列表中的每个非唯一 ID,全部在一个查询中
select last 20 entries from a table for each non unique id from a list of ids, all in one query
我有一条消息 table 具有休闲结构
objectId |群组编号 |发件人编号 |留言
这是一个 table,其中包含来自我的所有应用组的所有消息。我如何执行查询以便为每个组 ID 数组获取最后 20 条消息?
示例
objectId |群组编号 |发件人编号 |留言
1234 | 1 | 234 | "hello!"
1235 | 1 | 123 | "hello to you too!"
1236 | 2 | 456 | "test"
1237 | 3 |第678章"lol"
我想为第 1 组和第 2 组提取最后 20 条消息。如何在单个查询中执行此操作?可以吗?
我认为您应该可以使用 "or" 查询来完成此操作。
我对 class 名称和列类型进行了一些猜测。请根据需要编辑这些值以匹配您的实际数据结构。
试试这个:
- (void)runQuery {
PFQuery *query1 = [PFQuery queryWithClassName:@"message"];
[query1 addDescendingOrder:@"createdAt"];
[query1 whereKey:@"groupId" equalTo:@(1)];
query1.limit = 20;
PFQuery *query2 = [PFQuery queryWithClassName:@"message"];
[query2 addDescendingOrder:@"createdAt"];
[query2 whereKey:@"groupId" equalTo:@(2)];
query2.limit = 20;
PFQuery *both = [PFQuery orQueryWithSubqueries:@[query1, query2]];
[both findObjectsInBackgroundWithBlock:^(NSArray *messages, NSError *error) {
// You should have up to 40 message items,
// up to 20 from each query
}
];
}
我有一条消息 table 具有休闲结构
objectId |群组编号 |发件人编号 |留言
这是一个 table,其中包含来自我的所有应用组的所有消息。我如何执行查询以便为每个组 ID 数组获取最后 20 条消息?
示例
objectId |群组编号 |发件人编号 |留言
1234 | 1 | 234 | "hello!"
1235 | 1 | 123 | "hello to you too!"
1236 | 2 | 456 | "test"
1237 | 3 |第678章"lol"
我想为第 1 组和第 2 组提取最后 20 条消息。如何在单个查询中执行此操作?可以吗?
我认为您应该可以使用 "or" 查询来完成此操作。
我对 class 名称和列类型进行了一些猜测。请根据需要编辑这些值以匹配您的实际数据结构。
试试这个:
- (void)runQuery {
PFQuery *query1 = [PFQuery queryWithClassName:@"message"];
[query1 addDescendingOrder:@"createdAt"];
[query1 whereKey:@"groupId" equalTo:@(1)];
query1.limit = 20;
PFQuery *query2 = [PFQuery queryWithClassName:@"message"];
[query2 addDescendingOrder:@"createdAt"];
[query2 whereKey:@"groupId" equalTo:@(2)];
query2.limit = 20;
PFQuery *both = [PFQuery orQueryWithSubqueries:@[query1, query2]];
[both findObjectsInBackgroundWithBlock:^(NSArray *messages, NSError *error) {
// You should have up to 40 message items,
// up to 20 from each query
}
];
}