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

Jak wyodrębnić podciąg w MySQL

Problem:

Chcesz wyodrębnić podciąg z tekstu w danej kolumnie.

Przykład:

Nasza baza danych zawiera tabelę o nazwie web_address z danymi w kolumnach id i address . Chcemy usunąć „www. ” na początku i „.com ’ na końcu każdego address .

id adres
1 www.example.com
2 www.google.com
3 www.learnsql.com

Rozwiązanie 1:

Aby usunąć pierwsze 4 znaki:

SELECT
SUBSTR(address, 5, LENGTH(address) -4) AS substring
FROM web_address;

Aby usunąć ostatnie 4 znaki:

SELECT
SUBSTR(address, 1, LENGTH(address) -4) AS substring
FROM web_address;

Aby usunąć pierwsze 4 znaki i ostatnie 4 znaki:

SELECT
SUBSTR(address, 5, LENGTH(address) -8) AS substring
FROM web_address;

Rozwiązanie 2:

Aby usunąć pierwsze 4 znaki:

SELECT
SUBSTRING(address, 5, LENGTH(address)) AS substring
FROM web_address;

Aby usunąć ostatnie 4 znaki:

SELECT
SUBSTRING(address, 1, LENGTH(address) -4) AS substring
FROM web_address;

Aby usunąć pierwsze 4 znaki i ostatnie 4 znaki:

SELECT
SUBSTRING(address, 5, LENGTH(address) -8) AS substring
FROM web_address;

Rozwiązanie 3:

Aby usunąć wszystkie znaki przed drugim ‘.’ od prawej:

SELECT
SUBSTRING_INDEX(address, '.', -2) AS substring
FROM web_address;

Aby usunąć wszystkie znaki po drugim ‘.’ od lewej:

SELECT
SUBSTRING_INDEX(address, '.', 2) AS substring
FROM web_address;

Aby usunąć wszystkie znaki po drugim ‘.’ od lewej, a następnie usuń wszystkie znaki przed pierwszym ‘.’ od prawej:

SELECT
SUBSTRING_INDEX(
	SUBSTRING_INDEX(address, '.', 2),
	'.',
	-1
) AS substring
FROM web_address;

Wynik:

podciąg
przykład
google
learnsql

Dyskusja:

Zarówno pierwsze, jak i drugie rozwiązanie usuwają określoną liczbę znaków z tekstu za pomocą SUBSTR() lub SUBSTRING() funkcjonować. SUBSTR() jest synonimem SUBSTRING() . Oba wymagają ciągu znaków i pozycji początkowej jako argumentów. Ostatni argument, który definiuje liczbę znaków do wyodrębnienia, jest opcjonalny. Jeśli ostatni argument zostanie pominięty, zwrócony zostanie cały ciąg (od punktu początkowego).

W trzecim rozwiązaniu SUBSTRING_INDEX() funkcja usuwa tekst przed lub po określonych znakach. Wymaga jako argumentów ciągu, znaku i liczby wystąpień znaku, które należy napotkać w miejscu, w którym rozpoczyna się wyodrębnianie tekstu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Składnia SQL TRUNCATE – wymieniona przez DBMS

  2. Błąd mySQL 1040:Za dużo połączeń

  3. Uzyskaj różnicę lat między dwiema datami w MySQL jako liczbę całkowitą

  4. 15 podstawowych pytań do rozmowy kwalifikacyjnej na temat MySQL dla administratorów baz danych

  5. MySQL InnoDB Cluster 8.0 — pełny opis operacji:część druga