Попытка выполнить предложение LIKE в sqlite3 на iPhone
-
20-12-2019 - |
Вопрос
Я пытаюсь выполнить предложение 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.