2016-03-21 3 views
-1

welcomeemailattachment」というvarcharカラムがあります。ここでは、電子メールの添付ファイルとして使用されるファイルへのパスが格納されています。私は別のパスに値を更新する必要があります。 attachment.pdfは任意のファイル名にすることができ、は任意の番号にすることができMYSQLのvarchar値の更新/並べ替え

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

。この番号は実際には会社のIDです。

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

が、どのように私は企業IDとファイル名の間に「/ファイル/」の部分を挿入してください:

私は部分的にそうように、この問題を解決するために置き換える使用することができます実現しますか?

+0

'SUBSTRING_INDEX'を使用します(http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-indexを参照) –

+0

私の質問だったのはなぜダウン投票? – Vincent

答えて

0

sqlfiddle

UPDATE companies SET welcomeemailattachment = CONCAT('/companies/', 
SUBSTRING_INDEX(SUBSTRING_INDEX(welcomeemailattachment,'/',3),'/',-1), 
'/files/', 
SUBSTRING_INDEX(welcomeemailattachment,'/',-1)) 
関連する問題