用文字段落更新

时间:2019-01-30 10:12:29

标签: mysql

例如,我有以下文字:

magnalister-Verarbeitung (Amazon)
Marketplace Bestellnummer: 303-8945805-5911960

我什么都不想替换。

magnalister-Verarbeitung (Amazon)
Marketplace Bestellnummer: 


UPDATE s_order SET `internalcomment` = REPLACE(`internalcomment`, 'magnalister-Verarbeitung (Amazon)
Marketplace Bestellnummer: ', '');

该语句不起作用,因为之间有一段 (亚马逊)和市场

有人可以解决这个问题吗?

如果我分两步进行,则它的工作方式如下:

UPDATE s_order SET `internalcomment` = REPLACE(`internalcomment`, 'magnalister-Verarbeitung (Amazon)', '') 

UPDATE s_order SET `internalcomment` = REPLACE(`internalcomment`, 'Marketplace Bestellnummer: ', '')

但这并不是一个很好的解决方案:-(

1 个答案:

答案 0 :(得分:2)

您也可以使用以下内容替换新行:

UPDATE s_order SET `internalcomment` = TRIM(REPLACE(`internalcomment`, 'magnalister-Verarbeitung (Amazon)\nMarketplace Bestellnummer: ', ''));
  

demo on dbfiddle.uk

您还可以使用这样的动态解决方案:

UPDATE s_order SET `internalcomment` = TRIM(REPLACE(`internalcomment`, SUBSTR(`internalcomment`, 1, LOCATE(':', `internalcomment`)), ''));
  

demo on dbfiddle.uk

要替换直到第二个:,您可以使用以下解决方案:

UPDATE s_order SET `internalcomment` = TRIM(REPLACE(`internalcomment`, SUBSTR(`internalcomment`, 1, LOCATE(':', `internalcomment`, LOCATE(':', `internalcomment`) + 1)), ''))
WHERE `internalcomment` LIKE '%User Name:%';
  

demo on dbfiddle.uk