MySQL har inte inbyggd funktionalitet för att göra det du efterfrågar. Det skulle vara möjligt genom att definiera några nya funktioner, men det är förmodligen enklare att bara göra det på vilket programmeringsspråk du än kommer åt databasen genom.
För något så enkelt som en e-postadress bör du dock inte behöva använda reguljära uttryck alls, du kan använda SUBSTRING_INDEX()
funktion
, som:
SELECT
SUBSTRING_INDEX(email, '@', 1) AS Username,
SUBSTRING_INDEX(SUBSTR(email, LOCATE('@', email)), '.', 1) AS Domain,
SUBSTRING_INDEX(email, '.', -1) AS TLD
FROM users;
Med ord, det är:
- Användarnamn =allt före det första '@'
- Domän =allt mellan det första '@' och det första '.'
- TLD =allt efter den sista '.'