Я использую последнюю версию версии Server version: 8.0.11 MySQL Community Server - GPL
. Ссылка для скачивания
Структура таблицы - web_url < id, url >
Пример данных в столбце URL.
www.google.com
www.yahoo.com
как извлечь доменное имя только как google
и yahoo
используя функцию REGEXP_REPLACE
. поэтому это означает замену www.
и .com
заменить на пробел или на ". если у вас есть другое решение, тогда вы можете.
Я либо пропускаю некоторые. Так что помогите.
Я написал регулярное выражение, но не получаю, как правильно его использовать в запросе. Пожалуйста, дайте запрос на основе запроса.
мой запрос
select REGEXP_REPLACE(url,'^(www.)[a-zA-z0-9]*(.[a-zA-Z]{3})(\/[a-zA-Z09-]*)*','') from web_url;
Пока я сделал этот запрос.
Пока что я сделал это, возможно, кто-то получит помощь, сделанный этим запросом, чтобы проверить, происходит ли сравнение или нет. любезно игнорировать последние две строки, поскольку они предназначены только для проверки функции regexp_like
select regexp_like(url,'^(www.)(.*)(.com)$') from web_url;
Если url
вводит в заблуждение и на самом деле является полным доменным именем, что, по мнению этих комментариев,
reverse(regexp_replace(reverse(regexp_replace(url, '\\.[^\\.]*\\.?$', '')), '\\..*', ''))
должен дать вам второй ярлык справа (или третий, если в конце есть необязательная пустая метка), что вам кажется.
reverse()
необходимо, так как мы не знаем, сколько точек находится в строке. Из-за reverse()
после того, как мы удалили последние (или последние две) метки, мы можем просто удалить из первой точки.
Если бы были группы захвата с regexp_replace()
это было бы проще, но я ничего не нашел в документации. Прошу прокомментировать и указать на это, если я просто пропустил это.