Mysql
 sql >> Base de données >  >> RDS >> Mysql

analyser les résultats dans MySQL via REGEX

MySQL n'a pas de fonctionnalité intégrée pour faire ce que vous demandez. Cela serait possible en définissant de nouvelles fonctions, mais il est probablement plus simple de le faire dans le langage de programmation par lequel vous accédez à la base de données.

Pour quelque chose d'aussi simple qu'une adresse e-mail, vous ne devriez pas du tout avoir besoin d'utiliser des expressions régulières, vous pouvez utiliser le SUBSTRING_INDEX() fonction , comme :

SELECT
    SUBSTRING_INDEX(email, '@', 1) AS Username,
    SUBSTRING_INDEX(SUBSTR(email, LOCATE('@', email)), '.', 1) AS Domain,
    SUBSTRING_INDEX(email, '.', -1) AS TLD
FROM users;

En mots, c'est :

  • Nom d'utilisateur =tout avant le premier '@'
  • Domaine =tout entre le premier '@' et le premier '.'
  • TLD =tout après le dernier '.'