MySQL nemá vestavěnou funkcionalitu, která by dělala to, co požadujete. Bylo by to možné nadefinováním některých nových funkcí, ale pravděpodobně je jednodušší to udělat v jakémkoli programovacím jazyce, přes který k databázi přistupujete.
Pro něco tak jednoduchého, jako je e-mailová adresa, byste však neměli používat regulární výrazy vůbec, můžete použít SUBSTRING_INDEX()
funkce
, 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;
Slovy, to je:
- Uživatelské jméno =vše před prvním znakem „@“
- Doména =vše mezi prvním znakem „@“ a prvním znakem „.“
- TLD =vše za poslední '.'