Функция MySQL INSTR()

Funkcia Mysql Instr



В этом руководстве мы узнаем, как использовать функцию MySQL INSTR() для определения позиции первого вхождения заданной подстроки.

Функция MySQL INSTR()

Используя функцию instr(), мы можем предоставить строку и подстроку. Функция определит, существует ли подстрока в исходной строке. Если подстрока существует, функция вернет позицию первого вхождения подстроки в исходной строке.

Если подстрока не существует в исходной строке, функция вернет 0.







Ниже демонстрируется синтаксис функции instr():



INSTR(исходная_строка, подстрока);

Функция принимает два основных параметра:



  1. src_string относится к исходной строке, в которой вы хотите выполнить поиск.
  2. Подстрока определяет подстроку, которую вы ищете.

Следует помнить, что функция instr() нечувствительна к регистру. Следовательно, функция будет находить совпадающие шаблоны только без учета регистра символов,





Для выполнения поиска с учетом регистра можно использовать другие инструменты, например бинарный оператор.

Пример использования функции

В следующих примерах показано, как мы можем использовать функцию instr() для поиска определенной подстроки.



SELECT INSTR('MySQL - отличная база данных', 'база данных') as pos;

Приведенный выше пример вернет начальную позицию строки «база данных» из исходной строки. В этом случае позиция строки базы данных равна 21, как показано в выходных данных ниже:

поз|

---+

21|

Пример 2

Мы можем использовать функции lower() или upper для преобразования строки в нижний или верхний регистр. Это может помочь нам преодолеть регистрозависимость функции.

Пример:

SELECT INSTR(lower('MySQL — отличная база данных'), lower('DATABASE')) as pos;

Результат:

поз|

---+

21|

Это вернет значение, аналогичное первому примеру, поскольку исходная строка и подстрока преобразуются в нижний регистр перед операцией поиска.

Пример 3

Мы также можем использовать функцию instr() со столбцом таблицы, как показано в синтаксисе ниже.

SELECT INSTR(имя_столбца, 'подстрока')

ОТ имя_таблицы;

Пример:

СОЗДАТЬ ТАБЛИЧНЫЕ блоги (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

заголовок VARCHAR(255) НЕ NULL,

содержание ТЕКСТ НЕ ПУСТОЙ,

date_posted ДАТА НЕ НУЛЕВАЯ,

автор VARCHAR(255) НЕ NULL

);

Вставьте некоторые данные:

ВСТАВИТЬ В блоги (название, содержание, дата публикации, автор)

VALUES («Мой первый пост в блоге», «Это содержание моего первого поста в блоге», «2022-12-09», «Джейн Доу»);

ВСТАВИТЬ В блоги (название, содержание, дата публикации, автор)

VALUES («Мой второй пост в блоге», «Это содержание моего второго поста в блоге», «2022-12-10», «Джейн Доу»);

ВСТАВИТЬ В блоги (название, содержание, дата публикации, автор)

VALUES («Мой третий пост в блоге», «Это содержание моего третьего поста в блоге», «2022-12-11», «Джейн Доу»);

выберите * из блогов;

Результирующая таблица:

Мы можем использовать функцию instr(), чтобы получить позицию подстроки «блог» в столбце содержимого, как показано ниже:

выберите title, instr(content, 'post') из блогов;

Результат:

Заключение

В этом руководстве вы узнали, как использовать функцию INSTR() в MySQL для поиска позиции подстроки в строке. Функция чувствительна к регистру. Следовательно, вам может понадобиться использовать такие функции, как нижний и верхний, чтобы преобразовать строки поиска в нужные вам случаи.