Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak podzielić ciąg w MySQL

Problem:

Chcesz podzielić ciąg w MySQL.

Przykład:

Nasza baza danych zawiera tabelę o nazwie Student z danymi w kolumnach id i name .

id imię
1 Anna Smith
2 Mark Twain
3 Zielony Brad

Pobierzmy dane z nazwy kolumny i podzielmy je na firstname i lastname .

Rozwiązanie:

Użyjemy SUBSTRING_INDEX() funkcjonować. Oto zapytanie:

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

Oto wynik zapytania:

imię nazwisko
Anna Kowalski
Zaznacz Twain
Brad Zielony

Dyskusja:

Funkcja SUBSTRING_INDEX() przyjmuje 3 argumenty:ciąg źródłowy, ogranicznik i liczba wystąpień ogranicznika.

ciąg źródłowy to ciąg, który chcielibyśmy podzielić.

ogranicznik to ciąg znaków, który SUBSTRING_INDEX() funkcja szuka w ciągu źródłowym. Po znalezieniu wskazuje miejsce, w którym kończy się podciąg. Ogranicznikiem może być pojedynczy znak, taki jak spacja, ale może to być również wzorzec składający się z dwóch lub więcej znaków. W tym wzorze rozróżniana jest wielkość liter; oznacza to, że ma znaczenie, czy podane znaki są dużymi czy małymi literami. Pamiętaj, że ogranicznik jest ciągiem, więc musi być napisany w cudzysłowie („”).

Ostatni argument to liczba wystąpień . Wskazuje, ile razy należy dopasować wzorzec ogranicznika. Pamiętaj, że liczba wystąpień może być wartością ujemną. Gdy jest ujemny, liczymy wystąpienia ogranicznika z prawej strony. Gdy liczba jest liczbą dodatnią, liczymy od lewej.

Funkcja wypisuje każdy znak łańcucha źródłowego, dopóki ogranicznik nie zostanie dopasowany określoną liczbę wystąpień.

Jeśli uruchomimy następujące zapytanie:

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

wynik będzie następujący:

Ann

Jak widać, funkcja zwróciła wszystkie znaki, aż do znalezienia pierwszej spacji od lewej.

W naszym przykładzie jako imię ucznia pobieramy wszystkie znaki do pierwszej spacji od lewej, a jako nazwisko ucznia wszystkie znaki do pierwszej spacji od prawej.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z relacyjnych baz danych MySQL w Arch Linux

  2. Jak zresetować hasło administratora WordPress za pomocą wiersza polecenia MySQL?

  3. Napraw „BŁĄD 1054 (42S22):Nieznana kolumna „…” w „klauzula zamówienia” podczas używania UNION w MySQL

  4. Funkcja MySQL MOD() – Wykonaj operację Modulo w MySQL

  5. Używanie fragmentów Oracle JDeveloper z MySQL