MySQL nie ma wbudowanej funkcjonalności, aby robić to, o co prosisz. Byłoby to możliwe poprzez zdefiniowanie kilku nowych funkcji, ale prawdopodobnie łatwiej jest po prostu zrobić to w dowolnym języku programowania, przez który uzyskujesz dostęp do bazy danych.
Jednak w przypadku czegoś tak prostego jak adres e-mail nie powinieneś w ogóle używać wyrażeń regularnych, możesz użyć SUBSTRING_INDEX()
funkcja
, jako:
SELECT
SUBSTRING_INDEX(email, '@', 1) AS Username,
SUBSTRING_INDEX(SUBSTR(email, LOCATE('@', email)), '.', 1) AS Domain,
SUBSTRING_INDEX(email, '.', -1) AS TLD
FROM users;
Słowem, to:
- Nazwa użytkownika =wszystko przed pierwszym „@”
- Domena =wszystko między pierwszym „@” a pierwszym „.”
- TLD =wszystko po ostatnim „.”