2016-05-31 6 views
0

私の目標は、指定されたURLからドメインを抽出することです。私は以下を使用しているエンドのためにSQLite:trim usage

select distinct ltrim(rtrim('https://www.youtube.com/watch?v=...', '/'), 'https://') 

私が得る結果は次のとおりです。

www.youtube.com/watch?v=... 

次が予想されるが:

www.youtube.com 

どのように上記のことができます実現しましたか?

注:

私はtrim機能が異なり、私は予想以上に働くことに気付きます。

  • select distinct ltrim('https://www.youtube.com/watch?v...', 'youtu')は、同じ文字列をそのまま返します。
  • スラッシュのみをトリムしようとするとselect ltrim('https://www.youtube.com/watch?v...', '/')と同じ文字列が返されます。

説明は歓迎されます。

+1

これはありません。 1つの文字に遭遇するまで、2番目のパラメータのどこかに現れる文字を削除するだけです。とにかく、なぜあなたは実際のプログラミング言語ではなく、SQLでこれをしたいのですか? –

答えて

2

トリムは、文字列の先頭および/または末尾の指定された文字のみを削除します。 substrとinstrが必要です。 (https://www.sqlite.org/lang_corefunc.html

しかし、これをデータベースに保存する前にコード内で修正するのが最善の方法です。

0

最後に私はトリムを使用しませんでしたが、substrは提供されています。

働い以下:作品をトリミングする方法

select replace(substr(substr(<url>, instr(<url>, '//')+2),0,instr(substr(<url>, instr(<url>, '//')+2),'/')),'.','') 

select replace(substr(substr(<url>, instr(<url>, '//www.')+6),0,instr(substr(<url>, instr(<url>, '//www.')+6),'/')),'.','')