Я застрял в проблеме, я новичок в 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;
Вы можете использовать запрос следующим образом:
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)]>