2017-12-26 30 views
0

나는 문제가 붙어 있는데, 나는 초보자이며 url 주소에서 값을 추출하는 쿼리를 생성하도록 지정되었다. 그래서 기본적으로 여기에 'https://www.google.com/search?source='과 같이 수천 개의 URL 주소가 있습니다. ': // www'부터 '/'(이 경우 'google.com')까지 모든 것을 추출해야합니다. 기본적으로 도메인입니다. 그리고 그것은 간단하지 않습니다. 때로는 http입니다. 때로는 www가없는 'https://google.com/search?source='입니다. 저는 여기까지 왔지만 무력한 제안은 있습니까?mysql에서 문자 사이의 값을 추출 하시겠습니까?

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; 

답변

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

하지만 TI는하지 www.google.com 및 google.com 추출에 필요한 내 문제는 주소가 https : // www 또는 http : // 또는 http : //www...로 시작하는 경우가 있습니다. https : // 또는 www가없이 google.com 만 필요합니다. – Gudzo