我有一个名为" welcomeemailattachment "的varchar列。我将路径存储到用作电子邮件附件的文件。我需要将值更新为不同的路径。
Change this: /files/1089/attachment.pdf
To this: /companies/1089/files/attachment.pdf
attachment.pdf 可以是任何文件名, 1089 可以是任意数字。这个号码实际上是公司ID。
我意识到我可以使用replace来部分解决这个问题:
UPDATE companies SET welcomeemailattachment = REPLACE(welcomeemailattachment, '/files/', '/companies/') WHERE field LIKE '/files/%';
但如何插入" / files / "介于companyid和文件名之间?
答案 0 :(得分:0)
UPDATE companies SET welcomeemailattachment = CONCAT('/companies/',
SUBSTRING_INDEX(SUBSTRING_INDEX(welcomeemailattachment,'/',3),'/',-1),
'/files/',
SUBSTRING_INDEX(welcomeemailattachment,'/',-1))