В этом учебном пособии вы узнаете, как использовать SQLite функцию instr с синтаксисом и примерами.
Описание
SQLite функция instr возвращает позицию подстроки в строке.
Синтаксис
Синтаксис функции instr в SQLite:
Параметры или аргументы
string
Строка для поиска.
substring
Подстрока для поиска в string.
Примечание
- Первая позиция в string - 1.
- При нахождении позиции подстроки в строке функция instr выполняет поиск с учетом регистра.
- Если substring не найден в string, функция instr вернет 0.
- Функция instr была введена в SQLite 3.7.15.
Применение
Функция instr может использоваться в следующих версиях SQLite:
- SQLite 3.8.6, SQLite 3.8.x, SQLite 3.7.15
Пример
Рассмотрим некоторые примеры SQLite функции instr и узнаем, как использовать функцию instr в SQLite.
Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
sqlite> SELECT instr('Zebra zebra', 'z'); Результат: 7 sqlite> SELECT instr('Zebra zebra', 'Z'); Результат: 1 sqlite> SELECT instr('Zebra zebra', 'e'); Результат: 2 sqlite> SELECT instr('Zebra zebra', 'Ze'); Результат: 1 sqlite> SELECT instr('Zebra zebra', 'ze'); Результат: 7 sqlite> SELECT instr('Zebra', 'z'); Результат: 0 |
Часто задаваемые вопросы
Вопрос: я пытался использовать функцию instr в SQLite, но она возвращает ошибку:
Error: no such function: instr
Я знаю, что функция существует, что мне делать?
Ответ: Функция instr была впервые представлена в SQLite 3.7.15, поэтому вы используете более старую версию SQLite. Не знаете, какую версию SQLite вы используете, попробуйте функцию sqlite_version.
1 2 |
sqlite> SELECT sqlite_version(); Результат: 3.26.0 |
Теперь, когда вы знаете, что ваша версия SQLite старше и не поддерживает функцию instr, вы можете либо обновить свою версию SQLite до более новой версии, либо попробовать переписать оператор SQL без функции instr, возможно, с условием LIKE.
Например, если вы пытались запустить следующую инструкцию SQL с помощью функции instr:
1 2 3 |
SELECT * FROM employees WHERE instr(last_name, 'e'); |
Вы можете попробовать переписать оператор, используя условие LIKE, следующим образом:
1 2 3 |
SELECT * FROM employees WHERE last_name LIKE '%e%'; |
Эти два запроса вернут одинаковые результаты.