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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top