Сейчас я работаю над sqlite на платформе iPhone и работаю с базой данных с некоторыми странными объектами.Один из столбцов в этой БД называется типом, который допускает несколько значений (несколько типов).Данные в этом столбце выглядят следующим образом:
1|9|20|31|999
Таблица выглядит следующим образом:
ID TYPE
------------------------
1 1|9|20|31|999
2 5|13|15|30|990
3 6|7|45|46|57
Когда пользователь хочет выбрать данные с типом 9, он должен выбрать вышеданные, потому что объект содержит 9. И я использую следующий оператор для выполнения:
SELECT id
FROM table
WHERE type LIKE '%' || ? || '%'
Проблема в том, что данные с типом 999 и без типа 9 также будут выбраны.Кроме того, если пользователь хочет выбрать тип 1, также будут выбраны данные с типом 11, 12, 13 и т. Д.
Я попытался использовать выражение:
SELECT id
FROM table
WHERE type LIKE '[^0123456789]' || ? || '[^0123456789]'
Но он не может выбрать какие-либо данные.
Что я могу сделать, чтобы выбрать данные с правильным типом?
(База данных не может быть изменена из-за требований компании)