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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top