Вопрос

Я пытаюсь выполнить предложение LIKE в моем запросе sqlite3, т.е.

sqlStatement = [NSString stringWithFormate;@"select * from table_name where column_name like '%"+%@+"%'",title];

Здесь заголовок является типом NSString.имеющие такие значения, как 6 узлов, 10 узлов, 14 узлов или 18 узлов.

И в имя_столбца у меня такие ценности (6 уз, 10 уз, 14 уз) в одном заявлении

 |------------------------|
 |     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   | 
 | -----------------------|

и я попробую еще один запрос вроде этого:

sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where karat like '%@%%'",title];

со стоимостью титула = 6 кт.

ЭТО дает значения ряда, начиная с 6 Kt

но когда я пытаюсь использовать 18 уз или 22 уз как ценность для заголовок

это не дает мне никакого результата

Я думаю, что он проверяет только первое значение строки в этом столбце.

пожалуйста, помогите мне, спасибо

Это было полезно?

Решение

Вы должны добавить % перед запросом.Кроме того, вы должны использовать следующий запрос:

sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where ', '||karat like '%% %@%%'",title];

для сопоставления элементов в середине, начале или конце списка и сопоставления 6, но не 16.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top