2012-09-12 6 views
2

HeidiSql을 사용하고 있으며 ~ 1000 개의 URL이있는 데이터베이스가 있습니다. 방법SQL 하위 문자열 바꾸기

UPDATE jos_menu 
SET link = REPLACE(link, "cid=411", 'cid=403') 

을 그러나 않습니다 예 :이 같은 SQL 스크립트를 만든 cid=403

index.php?option=com_flexicontent&view=items&cid=283&id=33 
index.php?option=com_flexicontent&view=items&cid=421&id=4411 
index.php?option=com_flexicontent&view=items&cid=415&id=4375 

내가해야 할 일은에 477-408의 값을 가진 cid=를 대체하는 것입니다 7REPLACE을 만들지 않고 cid= 값을 408에서 477로 변경합니까?

+0

'REPLACE (link,'cid = 408 ','cid = 477''? –

+1

아마도'CONCAT ('cid =', [number])'? – Kermit

+0

적어도 cid = 409, cid = 410 등 – Marbury

답변

1

나는이 테스트를하지만,이

UPDATE jos_menu 
SET link = REPLACE(link, 'cid=' + SUBSTRING(@str, CHARINDEX('cid=', @str) + 4, 3), 'cid=403') 
WHERE Cast(SUBSTRING(@str, CHARINDEX('cid=', @str) + 4, 3) as Int) > 407 And Cast(SUBSTRING(@str, CHARINDEX('cid=', @str) + 4, 3) as Int) < 478 
0

가 phpMyAdmin을의 테이블 또는 데이터베이스의 백업을 만듭니다 시도하고 .cvs 파일로 저장 캔트. Excel을 사용하여 대체 작업을 수행하십시오. .cvs 파일로 저장 한 다음 다시 데이터베이스로 가져옵니다.