2010-03-26 2 views
1

링크가 포함 된 열이 있습니다. 문제는 링크 제목이 같은 열에 있으므로 다음과 같이 표시됩니다.
linktitle|-|linkurl
별도의 열에 링크 제목과 링크어를 입력하고 싶습니다. URL에 대한 새 열을 만들었으므로이 열을 추출하고 linkurl 열을 업데이트하는 방법을 찾고 있습니다. 이 작업을 수행하는 쿼리를 만드는 영리한 방법이 있습니까? LinkColumn는 현재 기존의 열되고, 당신은 분리 된 데이터를 저장할 위치를 LinkTitle & LinkUrl이되는으로SQL 쿼리 생성 - 한 열의 데이터를 두 개의 열로 나눕니다.

답변

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

.

+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) 

나는 그것이 무엇을 의미하는지 확실히 모르겠지만, 그것은했다. 모든 답장을 보내 주셔서 감사합니다!

관련 문제