2017-12-26 16 views
0

私は問題を抱えています。私はmysqlの初心者で、URLアドレスから値を抽出するクエリを作成するように割り当てられました。だから基本的に私は ':// www'から最初の '/'(この場合は 'google.com')まで、基本的にドメインからすべてを抽出する必要がある、例えば 'https://www.google.com/search?source='のような数千のURLアドレスを持っています。それは単純ではない、時にはhttpで、時にはそれは 'https://google.com/search?source='(wwwなどなし)です。私はここまでですが、私は無力感、どんな提案も感じませんか?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

関連する問題