2016-03-21 21 views
-1

"welcomeemailattachment" adlı bir varchar sütunu var. Burada yolu, bir e-postada ek olarak kullanılan bir dosyada saklıyorum. Değerleri farklı bir yolla güncellemem gerekiyor. attachment.pdf herhangi bir dosya adı olabilir ve herhangi bir sayı olabilirMYSQL'de varchar değerinin güncellenmesi/yeniden düzenlenmesi

Change this: /files/1089/attachment.pdf 
To this: /companies/1089/files/attachment.pdf 

. Bu sayı aslında şirket kimliğidir.

UPDATE companies SET welcomeemailattachment = REPLACE(welcomeemailattachment, '/files/', '/companies/') WHERE field LIKE '/files/%'; 

ama nasıl şirket kimliği ve dosya adını arasına "/files/" bölümünü eklerim:

ben kısmen şöyle bu sorunu çözmek için yerine kullanabilir olabilir farkında mısın?

+0

Kullanım 'SUBSTRING_INDEX' (http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index bakınız) –

+0

Sorum neden oldu aşağı oy? – Vincent

cevap

0

sqlfiddle

UPDATE companies SET welcomeemailattachment = CONCAT('/companies/', 
SUBSTRING_INDEX(SUBSTRING_INDEX(welcomeemailattachment,'/',3),'/',-1), 
'/files/', 
SUBSTRING_INDEX(welcomeemailattachment,'/',-1))