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

Пользователь

от ian.heidenreich , в категории: SQL , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от francisco.friesen , год назад

@ian.heidenreich 

Пользователь

от jakayla , год назад

@ian.heidenreich 

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


Синтаксис функции SUBSTRING_INDEX() выглядит следующим образом:

1
SUBSTRING_INDEX(str,delim,count)


где:

  • str - исходная строка;
  • delim - разделитель, который будет использоваться для разделения строки;
  • count - количество разделений, которое нужно выполнить.


Например, предположим, что у нас есть следующая таблица my_table:

1
2
3
4
5
6
7
+----+----------------+
| id | name           |
+----+----------------+
| 1  | John Smith     |
| 2  | Mary Johnson   |
| 3  | James Williams |
+----+----------------+


Мы можем использовать функцию SUBSTRING_INDEX() для разделения значения столбца name на имя и фамилию. Например, чтобы извлечь фамилию из каждой строки, мы можем использовать следующий запрос:

1
SELECT SUBSTRING_INDEX(name, ' ', -1) as surname FROM my_table;


Результатом будет:

1
2
3
4
5
6
7
+----------+
| surname  |
+----------+
| Smith    |
| Johnson  |
| Williams |
+----------+


В этом запросе мы указываем, что разделителем является пробел, а число -1 означает, что нужно извлечь последнее значение после разделения. Если бы мы использовали число 1, то получили бы имена, а не фамилии.