2016-12-31 25 views
0

我的情況就像在我的數據庫我有一個像如何使用查詢在數據庫中的某個單詞之後刪除文本?

http://www.myurl.com/url-blog/entry/camel-shadows-pic-amazing-.htmlhttps://www.testurl.com/gatoradecoupons 

http://www.myurl.com/url-blog/entry/cat-mountain-at-ukraine.htmlhttps://www.testurl.com/user/212294 

鏈接我要.html後刪除文本。問題是我想刪除htmlhttps以外的文本。我們可以檢查URL有這個問題,並修剪文本的其餘部分除.html

所需的輸出

http://www.myurl.com/url-blog/entry/camel-shadows-pic-amazing-.html 

http://www.myurl.com/url-blog/entry/cat-mountain-at-ukraine.html 

裏有無數的DB這樣的URL。我想知道是否有辦法一次去除。 請幫助做到這一點

回答

3

一種方法是使用substring_index()

select concat(substring_index(url, '.html', 1), '.html') 

如果某些值不具有.html,然後將上面添加它。對於這一點,你可以使用case

select (case when url like '%.html%' 
      then concat(substring_index(url, '.html', 1), '.html') 
      else url 
     end) 

而且,一旦你有一個select測試可以更新值,如果你想:

update t 
    set url = concat(substring_index(url, '.html', 1), '.html') 
    where url like '%.html%'; 
+0

只是想知道,是否有可能創建一個'選擇'用if()'而不是'case'查詢?無論如何,SQL中'case'的有趣用法,從來沒有見過它。不要責怪我,我在這個問題上的知識只是基本知識。 – Wh1T3h4Ck5

+0

@戈登非常感謝你。但是,如何在查詢中使用'url'?我在一張有Urls的表格中有一列。所有的URL都有'.html'擴展名。有一些格式不正確,有'htmlhttps',有些以'.html'結尾是正確的,不需要更正它們。 – user41048

+0

@Gordon這1000個URL位於'select loc from mytable'我使用這個是你的查詢嗎?請幫忙 – user41048

相關問題