2010-03-26 31 views
1

我有一列包含鏈接。問題是,鏈接的標題是在同一列,所以它看起來像這樣:
linktitle|-|linkurl
我想鏈接標題和linkurl在單獨的列。 我爲這些網址創建了一個新列,因此我正在尋找一種方法來提取它們並更新linkurl列。有沒有什麼聰明的方法來構建這樣的查詢?SQL查詢構建 - 將列中的數據分成兩列

回答

0
UPDATE TableName 
SET LinkTitle = Substring(LinkColumn, 0, InStr(LinkColumn, '|-|') - 1), 
LinkUrl = Substring(LinkColumn, InStr(LinkColumn, '|-|') + 3) 

隨着LinkColumn是當前存在的列,LinkTitle & LinkUrl是要存儲分離的數據。

+0

非常感謝您的回覆!您的查詢幾乎完美,但每個標題末尾都有| | 。只是出於好奇,什麼是+3? – Tommy

+0

InStr(LinkColumn,'| - |')將返回分隔符「| - |'的第一個字符的索引。但是,您需要URL的第一個字符的索引,即3的更高。 由於查詢起作用,您可能希望通過單擊左側的複選標記來接受此答案,以便其他具有相同問題的人員可以快速查看解決方案。 – DonaldRay

+0

啊,我不知道這個複選標記。我會在我回答過的其他問題上這樣做。感謝您解釋InStr! – Tommy

1
SELECT substring(field_name, 1, locate('|-|', field_name)-1) as title, 
substring(field_name, locate('|-|', field_name)+3) as linkurl 
1
UPDATE tablename 
SET linktitle = SUBSTRING_INDEX(link , '|-|', 1) 
linkurl = SUBSTRING_INDEX(link , '|-|', -1) 
0

是解決了這個問題看起來像這樣的查詢:

UPDATE jos_fabrik_posesapp 
SET linktitle = Left(poselink, InStr(poselink, '|-|')-1), 
linkurl = Substring(poselink, InStr(poselink, '|-|') + 3) 

我不太清楚這意味着什麼,但它的工作。感謝所有回覆!