Почему SQLite говорит, что instr не существует?

Я пытаюсь запустить запрос:

SELECT name
FROM Foo 
WHERE instr(name, '@') = 0 AND instr(name, '.') != 0

Но я получаю ошибку: "нет такой функции: instr". Это меня смущает, потому что на сайте четко указано, что эта функция существует. Кто-нибудь знает, что происходит?

P.S. Я также попробовал запрос в SQLiteSpy, который дает ту же ошибку.

Ответ 1

В соответствии с История изменений функция instr была добавлена ​​в версии 3.7.15:

2012-12-12 (3.7.15)

Добавлена ​​функция instr() SQL.

Убедитесь, что вы используете последнюю версию.

Если обновление не является вариантом, вы также можете использовать оператор LIKE:

SELECT name
FROM Foo 
WHERE name NOT LIKE '%@%' -- name does NOT contain @
AND name LIKE '%.%';      -- name DOES contain .