Поиск по сайту:

Начало — более, чем половина всего (Аристотель).

Как разделить строку в MySQL

4 мин для чтения
FavoriteLoadingДобавить в избранное
8 февраля 2022
Как установить MySQL на Ubuntu 16.04
В MySQL существует множество встроенных функций для выполнения различных типов операций со строковыми данными. Иногда требуется разделить строковые данные на основе любого разделителя при выполнении запроса SELECT. Функция SUBSTRING_INDEX() используется для разделения строковых данных, полученных запросом, на основе определенного разделителя. В этой статье обсуждается способ использования этой функции в запросе SELECT.

 

Синтаксис SUBSTRING_INDEX():

Функция SUBSTRING_INDEX() принимает три аргумента и возвращает значение подстроки. Синтаксис функции SUBSTRING_INDEX() представлен ниже:

string SUBSTRING_INDEX(string, delimiter, count);

 

  • Первый аргумент — это строковое значение, которое будет разделено.
  • Второй аргумент — это разделитель, который будет использоваться для разделения строкового значения.
  • Третий аргумент определяет количество вхождений разделителя. Оно может быть положительным или отрицательным. Если значение третьего аргумента положительное, то значение подстроки будет возвращено слева. Если значение третьего аргумента отрицательное, значение подстроки будет возвращено справа.

 

Разделить строку с помощью функции SUBSTRING_INDEX():

В этой части статьи показаны различные варианты использования функции SUBSTRING_INDEX().

 

Пример 1: Разделить строку на основе положительного значения счетчика

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

Запустите следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 1, и пробелом в качестве разделителя. Основная строка «Welcome to AndreyEx» состоит из трех слов. Таким образом, в выводе будет напечатано первое слово строки.

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', ' ', 1);

 

Запустите следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 2, и символом «o» в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит два раза символ «o». Второй раз «o» появилось во втором слове «to». Таким образом, вывод будет «Welcome to».

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'o', 2);

 

Выполните следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 1, и строкой ‘to’ в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит строку «to» один раз. Таким образом, вывод будет «Welcome».
SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'to', 1);

 

Читать  MySQL. REGEXP: поиск на основе регулярных выражений

Выполните следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 3, и строкой ‘to’ в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит строку «to» только один раз. Таким образом, основная строка будет возвращена на выходе.

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'to', 3);

 

Пример 2: Разделить строку на основе отрицательного значения счетчика

В этой части руководства показаны три варианта использования функции SUBSTRING_INDEX() с отрицательным значением счетчика и другим разделителем, которые были показаны в этой части статьи.

Выполните следующую инструкцию SELECT, в которой используется функция SUBSTRING_INDEX() с отрицательным значением счетчика, -1, и пробелом в качестве разделителя. Основная строка «Welcome to AndreyEx» состоит из трех слов. Итак, последнее слово строки будет напечатано в выводе для отрицательного значения:

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', ' ', -1);

 

Выполните следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с отрицательным значением счетчика, -2, и символом «e» в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит символ «e» только один раз. Таким образом, вывод будет «lcome toAndreyEx »:

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'e', -2);

 

Выполните следующую инструкцию SELECT, в которой используется функция SUBSTRING_INDEX() с отрицательным значением счетчика, -2, и строкой «in» в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит два раза строку «yE». Таким образом, в выводе будет возвращена подстрока ‘ Andrex’.

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'in', -2);

 

Пример 3: Разделить строковое значение таблицы

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

Выполните следующий запрос, чтобы создать базу данных с именем test_db:

CREATE DATABASE test_db;

 

Выполните следующую инструкцию, чтобы использовать базу данных test_db в качестве текущей базы данных:

USE test_db;

 

Выполните следующий запрос, чтобы создать таблицу клиентов с четырьмя полями:

CREATE TABLE customers(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50),
contact_no VARCHAR(15));

 

Выполните следующий запрос, чтобы вставить три записи в таблицу клиентов :

INSERT INTO `customers` (`id`, `name`, `email`, `contact_no`) VALUES
('001', 'Andrey Ex', 'info@andreyex.ru', '+8 000 00 00 000'),
('002', 'Maxs Destroyer', 'Max***@yandex.com', '+8 000 00 00 000'),
('003', 'Alex Annihilator', 'Alex***@yandex.com', '+8 000 00 00 000');

Выполните следующую команду, чтобы прочитать все записи таблицы клиентов:
SELECT * FROM customers;

 

Читать  Как сравнить последовательные строки в одной таблице в MySQL

Поле имени содержит имя и фамилию. Поле contact_no содержит номер мобильного телефона с кодом страны. Имя и номер мобильного телефона без кода страны можно прочитать из таблицы с помощью функции SUBSTRING_INDEX(). В следующем запросе SELECT первое имя будет получено с использованием разделителя пробела и 1 в качестве значения счетчика в функции SUBSTRING_INDEX(), а номер мобильного телефона без кода страны будет получен с использованием кода страны в качестве разделителя и -1 в качестве значения счетчика в функции SUBSTRING_INDEX():

SELECT
id, SUBSTRING_INDEX(name,' ',1) AS `First Name`, email, SUBSTRING_INDEX(contact_no,'+88',-1) AS Phone
FROM customers;

 

Вывод:

Различные варианты использования функции SUBSTRING_INDEX() с использованием разных значений аргументов обсуждались в этом руководстве с использованием нескольких примеров. Мы надеемся, что примеры в этой статье помогут пользователям MySQL узнать об использовании функции SUBSTRING_INDEX() и правильно применить ее в запросе SELECT.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close