Вы, похоже, ищете индекс для выражения :
Используйте оператор CREATE INDEX
для создания нового индекса для одного или нескольких выражений, как если бы вы это делалисоздать индекс по столбцам.Единственное отличие состоит в том, что выражения перечислены в качестве элементов для индексирования, а не имен столбцов.
Обратите внимание:
CREATE INDEX idx ON mytable(SUBSTR(synopsis, 1, 20));
Обратите внимание, что, как объясняется в документации, дляЭтот индекс должен учитываться планировщиком запросов sqlite. Необходимо использовать точно такое же выражение, которое было задано при создании индекса.
Таким образом, этот запрос будет использовать индекс:
SELECT * FROM mytable WHERE SUBSTR(synopsis, 1, 20) = 'a text with 20 chars';
Хотя обычно это не так:
SELECT * FROM mytable WHERE synopsis LIKE 'a text with 20 chars%';
Примечание: да, 'a text with 20 chars'
имеет длину 20 символов ...