таблицы [идентификатор, данные]
данные, как это:Как запрашивать строки как IndexOf
str[N]
, где положение, как это:
strs = 'str1#str2#str3#str4#str5......'
если разделить его с '#' , Я получил большой массив. Затем я написал вот так:
select * from Table where data in(str1,str2,str3,str4,str5).......
Длина может быть очень большой. Это слишком медленно. Я просто хочу:
select * from Table where 'str1#str2#str3#str4#str5......'.indexOf(data)!=-1
Спасибо!
Вы пытались создать индекс для поля, в котором выполняется запрос? – mihail
Я думаю, что предложение IN не может использовать индекс .... Как я знаю, sql может указывать только equals вместо IN или LIKE – blackdog
с http://www.sqlite.org/optoverview.html Если индекс создан используя такой оператор: > CREATE INDEX idx_ex1 ON ex1 (a, b, c, d, e, ..., y, z); Тогда индекс может использоваться, если начальные столбцы индекса (столбцы a, b и т. Д.) Появляются в терминах WHERE. Начальные столбцы индекса должны использоваться с операторами = или IN. В правой колонке, которая используется, может использоваться неравенство. Для самого правого столбца используемого индекса может быть до двух неравенств, которые должны сэндвич допустимых значений столбца между двумя крайними значениями. – mihail