Intentando ejecutar la cláusula LIKE en sqlite3 en iPhone
-
20-12-2019 - |
Pregunta
Estoy intentando ejecutar la cláusula LIKE en mi consulta sqlite3, es decir.
sqlStatement = [NSString stringWithFormate;@"select * from table_name where column_name like '%"+%@+"%'",title];
Aquí título es un tipo NSString.teniendo valores como 6 Kt o 10 Kt o 14 Kt o 18 Kt
Y en nombre_columna tengo valores como este (6 nudos, 10 nudos, 14 nudos) en una sola declaración
|------------------------|
| column_name |
|------------------------|
| 6 Kt, 10 Kt, 14 Kt |
| -------------------- |
| 10 Kt, 18 Kt, 22 Kt |
| --------------------- |
| 6 Kt, 10 Kt, 24 Kt |
| --------------------- |
| 6 Kt, 14 Kt, 22 Kt |
| ---------------------- |
| 6 Kt, 22 Kt, 24 Kt |
| -----------------------|
y pruebo una consulta más como esta:
sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where karat like '%@%%'",title];
con el valor del título = 6 Kt.
le da el valores de una hilera empezando por 6 Kt
pero cuando trato de usar 18 nudos o 22 nudos como valor para título
no me da ningun resultado
Creo que solo está verificando el primer valor de una fila en esta columna.
por favor ayudame, gracias
Solución
Debes agregar un %
antes de la consulta.Además, debe utilizar la siguiente consulta:
sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where ', '||karat like '%% %@%%'",title];
para hacer coincidir elementos en el medio, principio o final de la lista y hacer coincidir 6 pero no 16.