iphone - not - NSPredicate que es el equivalente de LIKE de SQL
sentencia like en db2 (3)
Estoy buscando una forma de usar NSPredicate
para establecer una condición LIKE
para buscar objetos. Además de eso, un OR
sería útil. NSPredicate
hacer algo donde si un usuario busca "James" puedo escribir un NSPredicate
que hará el equivalente de:
select * from users where firstname LIKE ''%James%'' OR lastname LIKE ''%James%'';
El operador CONTAINS
ciertamente funcionará bien. Si busca una correlación más directa, también puede usar el operador LIKE ( *
= 0 o más caracteres ?
= 1 carácter):
NSString *_mySearchKey = @"James";
NSPredicate *_myPredicate = [NSPredicate predicateWithFormat:@"firstname LIKE ''*%1$@*'' OR lastname LIKE ''*%1$@*''", _mySearchKey];
Para referencia:
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-215868
Otra posibilidad
@"firstname beginswith[c] James"
Como una buena alternativa para contener
A veces, contener no siempre es la respuesta correcta
NSString *_mySearchKey = @"James";
NSPredicate *_myPredicate = [NSPredicate predicateWithFormat:@"(firstname CONTAINS[cd] %@) OR (lastname CONTAINS[cd] %@)", _mySearchKey, _mySearchKey];