Mysql
 sql >> Baza danych >  >> RDS >> Mysql

parsuj wyniki w MySQL przez REGEX

MySQL nie ma wbudowanej funkcjonalności, aby robić to, o co prosisz. Byłoby to możliwe poprzez zdefiniowanie kilku nowych funkcji, ale prawdopodobnie łatwiej jest po prostu zrobić to w dowolnym języku programowania, przez który uzyskujesz dostęp do bazy danych.

Jednak w przypadku czegoś tak prostego jak adres e-mail nie powinieneś w ogóle używać wyrażeń regularnych, możesz użyć SUBSTRING_INDEX() funkcja , 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;

Słowem, to:

  • Nazwa użytkownika =wszystko przed pierwszym „@”
  • Domena =wszystko między pierwszym „@” a pierwszym „.”
  • TLD =wszystko po ostatnim „.”


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego CONCAT() nie ustawia domyślnie domyślnego zestawu znaków w MySQL?

  2. Doctrine Query Language pobierz maks./najnowszy wiersz na grupę

  3. HAProxy:wszystkie zasoby z serii Kilkanaście

  4. Jak przywrócić plik SQL wygenerowany przez MySQLDump za pomocą wiersza poleceń?

  5. Jak wyświetlić wartości wierszy jako kolumny w MySQL?