ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

Как установить 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);

 

Выполните следующую инструкцию 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;

 

Поле имени содержит имя и фамилию. Поле 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.

Exit mobile version