sql >> Database >  >> RDS >> Mysql

Domeinnaam selecteren uit e-mailadres

Ervan uitgaande dat het domein een domein met één woord is, zoals gmail.com, yahoo.com, gebruik dan

select (SUBSTRING_INDEX(SUBSTR(email, INSTR(email, '@') + 1),'.',1))

De innerlijke SUBSTR krijgt het juiste deel van het e-mailadres na @ en de buitenste SUBSTRING_INDEX zal het resultaat in de eerste periode afsnijden.

anders als het domein naar verwachting meerdere woorden zal bevatten, zoals mail.yahoo.com , enz., gebruik:

select (SUBSTR(email, INSTR(email, '@') + 1, LENGTH(email) - (INSTR(email, '@') + 1) - LENGTH(SUBSTRING_INDEX(email,'.',-1)))) 

LENGTH(email) - (INSTR(email, '@') + 1) - LENGTH(SUBSTRING_INDEX(email,'.',-1)) krijgt de lengte van het domein minus het TLD (.com, .biz etc. part) door SUBSTRING_INDEX . te gebruiken met een negatieve telling die van rechts naar links wordt berekend.



  1. hoe ISO-8601 Gregoriaanse datumtabel te maken in postgres

  2. Hoe vermijd ik ongewenste tekens/vuilnistekens bij het lezen van gegevens uit meerdere talen?

  3. Hoe maak ik verbinding met SQL Server via sqlalchemy met behulp van Windows-verificatie?

  4. LibreOffice:'com.mysql.jdbc.driver' kan niet worden geladen