2014-01-07 3 views
0

잘못된 URL이있는 SQL 덤프가 있습니다. 내가 잘못된 URL을 제거하고 SQL 덤프를 정리 에 요구하고잘못된 문자열 제거 또는 바꾸기

Another text stuff goes here. <a href="http://www.correctsite.com/correctsite/uploads/2000/xxx/yyy/zzz.html>Correct Text</a>. And here too. 

올바른 URL을에서

Text stuff goes here before the url <a href="http://www.incorrectsite.com/incorrecturl/2000/xxx/yyy/zzz.html>Correct Text</a> 

.

내가 사용 기록을 찾을 수는 URL의

select * from tbl_incorrect WHERE like '%incorrecturl%' 

각 반환 값은 서로 다르다.

의견이 있으십니까?

+0

는 쿼리와 DB에서 해당 URL을 수정하려는, 또는 PHP와 덤프 파일을 찾을에서 할 수있는/교체 교체? – jszobody

+0

그래서 일반 SQL 덤프 파일에서 모든 old_url을 new_url로 바꾸시겠습니까? 'sed'는 그것을 만들 수 있습니다. – fedorqui

+0

$ sometexteditor에서 찾아서 바꾸기 – Steve

답변

0

당신은 정력에 덤프를 열고 모든 URL을 대체 할 수

:%s/www.incorrectsite.com\/incorrecturl/www.correctsite.com\/correctsite\/uploads/g 
:wq 

또는 sed를 사용

sed 's/www.incorrectsite.com\/incorrecturl/www.correctsite.com\/correctsite\/uploads/g' incorrect.sql > correct.sql 
+0

잘못된 URL을 찾아 완전히 제거하고 대체하지 않는 것이 좋습니다. – Kush

+0

@Kush 덤프에서 text 링크를 제거 하시겠습니까? –

0

은 MySQL을의 기본 REPLACE() 메소드가있다. http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_replace

전체 레코드 테이블을 거쳐야하는 경우 CURSOR가있는 저장 프로 시저를 사용할 수 있습니다.

덤프의 텍스트 버전을 사용하는 경우 유닉스에서 'sed'를 사용하여 SQL 덤프 파일 내에서 정규 표현식을 바꿀 수있는 찾기 및 바꾸기 기능을 활용할 수도 있습니다.

+0

잘못된 URL을 찾아 완전히 제거하고 대체하지 않는 것이 좋습니다. – Kush

+0

좋습니다. 그래서 URL 텍스트 만 제거 하시겠습니까? 아니면 열 레코드를 완전히 삭제 하시겠습니까? 전자는 동일한 방법을 적용하는 경우 빈 문자열로 설명했다. 후자의 경우, MySQL 커서 방식 인 http://dev.mysql.com/doc/refman/5.0/en/cursors.html을 사용하여 항목을 삭제하십시오. – cj5

+0

전체 열 레코드가 아니라 URL 텍스트 만 제거해야합니다. 나는 당신이 붙인 커서 의사를 검사 할 것이다. – Kush

0

사용

UPDATE `table_name` SET `field_name` = replace(same_field_name, 'unwanted_text', 'wanted_text') where field_name like = "%unwanted text%" 
+0

문제는 간단하지 않습니다. 선택한 텍스트에서 URL을 식별하는 방법이 필요합니다 (예 : 무작위 인 ''사이의 텍스트를 선택한 다음 빈 문자열로 바꿉니다. – Kush

관련 문제