在MySQL中查找并替换部分字符串

时间:2014-07-11 14:46:31

标签: mysql sql regex database database-administration

我的表格中有一个名为slug的字段,其格式为:

“的用户名/广告活动名称”

我想删除值“username /”并仅保留“广告系列名称”。

我尝试了以下但仍坚持如何动态替换字符串“hello”?感谢任何其他替代方法。

UPDATE `campaigns`
 SET `slug` = REPLACE(`slug`, `slug`,'hello') 
   WHERE `slug` IN (  
    SELECT `slug`
    FROM (
        SELECT `slug`
        FROM `campaigns` 
        LIMIT 1
    ) slug  
 );

1 个答案:

答案 0 :(得分:1)

我建议使用substring_index()

UPDATE `campaigns`
     SET `slug` = substring_index(slug, '/', -1);

我不确定where子句应该做什么。如果您只想更改一行,请使用limit

UPDATE `campaigns`
     SET `slug` = substring_index(slug, '/', -1)
     LIMIT 1;

为安全起见,您可能需要验证slug的格式:

UPDATE `campaigns`
     SET `slug` = substring_index(slug, '/', -1)
     WHERE slug like '%/%' and slug not like '%/%/%';