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

Comment trouver un nom de domaine en utilisant MySQL et une expression régulière

En MySQL , les expressions régulières peuvent correspondre mais pas renvoyer des sous-chaînes.

Vous pouvez utiliser SUBSTRING_INDEX :

SELECT  SUBSTRING_INDEX('www.example.com', '/', 1)

, cependant, ce n'est pas sûr pour les préfixes de protocole.

Si vous utilisez un mélange d'URL avec et sans préfixe 's, utilisez ceci :

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