Tentando executar a cláusula LIKE no sqlite3 no iPhone
-
20-12-2019 - |
Pergunta
Estou tentando executar a cláusula LIKE na minha consulta sqlite3, ou seja,
sqlStatement = [NSString stringWithFormate;@"select * from table_name where column_name like '%"+%@+"%'",title];
Aqui título é um tipo NSString.tendo valores como 6 Kt ou 10 Kt ou 14 Kt ou 18 Kt
E em nome da coluna eu tenho valores como este (6 Kt, 10 Kt, 14 Kt) em uma única declaração
|------------------------|
| 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 |
| -----------------------|
e tento mais uma consulta como esta:
sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where karat like '%@%%'",title];
com o valor do título = 6 Kt.
Isso dá o valores de uma linha começando com 6 Kt
mas quando tento usar 18 Kt ou 22 Kt como um valor para título
isso não me dá nenhum resultado
Acho que está apenas verificando o primeiro valor de uma linha nesta coluna.
por favor me ajude, obrigado
Solução
Você deve adicionar um %
antes da consulta.Além disso, você deve usar a seguinte consulta:
sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where ', '||karat like '%% %@%%'",title];
para combinar itens no meio, início ou final da lista e combinar 6, mas não 16.