Mysql
 sql >> Database >  >> RDS >> Mysql

analizzare i risultati in MySQL tramite REGEX

MySQL non ha funzionalità integrate per fare ciò che stai chiedendo. Sarebbe possibile definendo alcune nuove funzioni, ma probabilmente è più semplice farlo in qualsiasi linguaggio di programmazione attraverso il quale si accede al database.

Per qualcosa di semplice come un indirizzo e-mail, tuttavia, non dovresti aver bisogno di usare espressioni regolari, puoi utilizzare SUBSTRING_INDEX() funzione , come:

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

In parole, questo è:

  • Nome utente =tutto prima della prima '@'
  • Dominio =tutto ciò che è compreso tra il primo '@' e il primo '.'
  • TLD =tutto dopo l'ultimo '.'