MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Wybierz wszystko przed lub po określonej postaci w MariaDB

W MariaDB możesz użyć SUBSTRING_INDEX() funkcja zwracająca wszystko przed lub po określonym znaku (lub znakach) w ciągu.

Ta funkcja przyjmuje trzy argumenty; ciąg, ogranicznik i liczba wystąpień tego ogranicznika, który zostanie użyty do określenia podciągu do zwrócenia.

Przykłady

Możemy zobaczyć, jak ta funkcja działa na poniższych przykładach.

Zaznacz wszystko przed

Aby zaznaczyć wszystko przed określonym znakiem, ustaw trzeci argument jako wartość dodatnią:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);

Wynik:

Red,Green

W tym przykładzie zaznaczamy wszystko przed drugim przecinkiem. Odbywa się to za pomocą przecinka (, ) jako ogranicznik i 2 jako licznik.

W tym przykładzie użyłem przecinka, ale mógł to być dowolny znak lub ciąg:

SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);

Wynik:

Red or Green

Wybierz wszystko po

Użyj wartości ujemnej, aby zaznaczyć wszystko po określonym znaku:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);

Wynik:

Green,Blue

Zauważ, że wartość ujemna oznacza, że ​​będzie liczona od prawej, a następnie wybierz podciąg z prawej strony ogranicznika.

Gdy separator nie zostanie znaleziony

Jeśli ogranicznik nie zostanie znaleziony w ciągu, ciąg jest zwracany w całości.

Przykład:

SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);

Wynik:

Red,Green,Blue

W tym przypadku cały ciąg jest zwracany w całości, ponieważ użyliśmy łącznika (- ) jako ogranicznik, ale w ciągu nie ma łączników.

Otrzymalibyśmy ten sam wynik, jeśli ciąg tak zawierają ogranicznik, ale nasz count przekracza liczbę ograniczników w ciągu.

Przykład:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);

Wynik:

Red,Green,Blue

Rozróżnianie wielkości liter

SUBSTRING_INDEX() Funkcja wykonuje wyszukiwanie ogranicznika z uwzględnieniem wielkości liter. Oznacza to, że separator musi mieć odpowiednią wielkość liter, zanim będzie pasował.

Nieprawidłowy przypadek

Oto przykład, w którym sprawa nie pasuje:

SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);

Wynik:

Red and green and blue

Otrzymujemy cały ciąg.

Właściwy przypadek

Oto ten sam przykład, ale gdzie przypadek pasuje:

SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);

Wynik:

Red and green

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Objaśnienie operatora MariaDB UNION

  2. 4 sposoby na oddzielenie godzin, minut i sekund od wartości czasu w MariaDB

  3. Jak chronić bazę danych MySQL lub MariaDB przed wstrzyknięciem SQL:część druga

  4. Jak wykonać odzyskiwanie danych MySQL i MariaDB do określonego momentu za pomocą ClusterControl

  5. 4 sposoby sprawdzenia, czy tabela istnieje w MariaDB