如何在核心数据中进行此SQLite查询(iOS开发)?

SELECT DISTINCT VALUE_1, VALUE_2 FROM TABLE;

例如,它应该从该表返回(二重奏,三重奏)不同的值:
(123, 234, Car)
(123, 456, Bus)
(234, 456, Train)
(123, 456, Eletric Bus)
(234, 456, Subway)

它应该返回3行,因为(123, 234)是UNIQUE,所以(234, 456)(123, 456)
(123, 234, Car)
(234, 456, Train) or (234, 456, Subway)
(123, 456, Eletric Bus) or (123, 456, Bus)

使用此代码,我只能区分一个值:
NSDictionary *entityProperties = [entity propertiesByName];
[request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"VALUE_1"]]];
[request setReturnsDistinctResults:YES];
[request setResultType:NSDictionaryResultType];

最佳答案

您可以指定一个以上的唯一属性来获取:

[request setPropertiesToFetch:@[@"VALUE_1", @"VALUE_2"]];
[request setReturnsDistinctResults:YES];
[request setResultType:NSDictionaryResultType];

(请注意,您可以提供属性名称列表,而不是属性
说明。)

这应该返回这样的字典数组:

[
{“VALUE_1” = 123; “VALUE_2” = 234},
{“VALUE_1” = 234; “VALUE_2” = 456},
{“VALUE_1” = 123; “VALUE_2” = 456},
]

但是,(我知道)没有办法另外提出获取请求
从“随机选择”的对象返回第三个属性。

关于iphone - 在核心数据(Objective-C,iPhone,Xcode)中选择不同的值(2个或更多),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17234420/

10-12 05:41