Извлечь значения между символами в MySQL?

0

Я застрял в проблеме, я новичок в mysql, и мне было назначено создать запрос, который извлекает значения из адресов url. Таким образом, в основном у меня есть тысячи адресов URL-адресов, например, " https://www.google.com/search?source= ", где мне нужно извлечь все из "://www" до первого "/" (в этом case 'google.com'), в основном это домен. И это не так просто, иногда это http, иногда это " https://google.com/search?source= " без www и т.д. Я здесь, но я чувствую себя беспомощным, любые предложения?

select distinct SUBSTRING_INDEX(col,'://',0) col from table where length(col) - length(replace(col, '://', '')) >= 1 
         and length(col) - length(replace(col, '/', '')) >= 1 
                and col = 'value'
                    and col <> ''
                      and col is not null 
                        order by date
                         limit 600;
Теги:
replace

1 ответ

0

Вы можете использовать запрос следующим образом:

SELECT 
  SUBSTRING_INDEX (
     SUBSTRING_INDEX( 'https://www.google.com/search?source=', '/',3),
 '/', -1);

Образец:

MariaDB [(none)]> SELECT SUBSTRING_INDEX (SUBSTRING_INDEX( 'https://www.google.com/search?source=', '/',3) , '/', -1);
+----------------------------------------------------------------------------------------------+
| SUBSTRING_INDEX (SUBSTRING_INDEX( 'https://www.google.com/search?source=', '/',3) , '/', -1) |
+----------------------------------------------------------------------------------------------+
| www.google.com                                                                               |
+----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]>
  • 0
    Это все хорошо, но мне нужно было извлечь google.com, а не www.google.com, и моя проблема в том, что иногда адрес начинается с www или с http: // или .. Мне нужен только google.com без https: // или www

Ещё вопросы

Сообщество Overcoder
Наверх
Меню