Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como podemos encontrar o nome de domínio usando MySQL e expressão regular


Em MySQL , as expressões regulares podem corresponder, mas não retornar substrings.

Você pode usar SUBSTRING_INDEX :
SELECT  SUBSTRING_INDEX('www.example.com', '/', 1)

, no entanto, não é seguro com prefixo de protocolo.

Se você estiver usando uma combinação de URL prefixado e não prefixado 's, use isto:
SELECT  url RLIKE '^http://',
        CASE
        WHEN url RLIKE '^http://' THEN
                SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 3), '/', -1)
        ELSE
                SUBSTRING_INDEX(url, '/', 1)
        END
FROM    (
        SELECT   'www.example.com/test/test' AS url
        UNION ALL
        SELECT   'http://www.example.com/test'
        ) q