Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да разделите низ в MySQL

Проблем:

Искате да разделите низ в MySQL.

Пример:

Нашата база данни има таблица с име Student с данни в колоните id и name .

id име
1 Ан Смит
2 Марк Твен
3 Брад Грийн

Нека да извлечем данните от името на колоната и да ги разделим на firstname и lastname .

Решение:

Ще използваме SUBSTRING_INDEX() функция. Ето заявката:

SELECT
SUBSTRING_INDEX(name,' ',1) AS firstname,
SUBSTRING_INDEX(name,' ',-1) AS lastname
FROM Student

Ето резултата от заявката:

собствено име фамилия
Ан Смит
Отметка Твен
Брад Зелено

Дискусия:

Функцията SUBSTRING_INDEX() приема 3 аргумента:изходния низ, разделителя и броя на срещанията на разделителя.

Изходният низ е низът, който бихме искали да разделим.

разделител е низ от знаци, които SUBSTRING_INDEX() функцията търси в изходния низ. Когато бъде намерен, той показва мястото, където завършва поднизът. Ограничителят може да бъде единичен знак като интервал, но може да бъде и шаблон, който се състои от два или повече знака. Този модел е чувствителен към главни букви; тоест има значение дали дадените знаци са главни или малки букви. Не забравяйте, че разделителят е низ, така че трябва да бъде написан в кавички (‘’).

Последният аргумент е броят на събитията . Показва колко пъти трябва да се съпостави шаблонът на разделителя. Имайте предвид, че броят на събитията може да бъде отрицателна стойност. Когато е отрицателен, ние броим появяванията на разделителя отдясно. Когато преброяването е положително число, ние броим отляво.

Функцията извежда всеки знак от изходния низ, докато разделителят не съвпадне с броя пъти, даден от броя на поява.

Ако изпълним следната заявка:

SELECT
SUBSTRING_INDEX('Ann Smith',' ',1);

изходът ще бъде:

Ann

Както можете да видите, функцията върна всички знаци, докато не бъде намерен първият интервал отляво.

В нашия пример извличаме като първо име на ученика всички знаци до първия интервал отляво и като фамилно име на ученика всички знаци до първия интервал отдясно.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неуспешно свързване:Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:ДА) от php функция

  2. JSON_TYPE() – Вземете типа на стойността на JSON в MySQL

  3. Как мога да получа достъп до командния ред на MySQL с XAMPP за Windows?

  4. Работа с MySQL TIMESTAMP колони в SQL Server

  5. Предотвратяване на SQL инжектиране в Node.js