我的表格中有一个名为slug的字段,其格式为:
“的用户名/广告活动名称”
我想删除值“username /”并仅保留“广告系列名称”。
我尝试了以下但仍坚持如何动态替换字符串“hello”?感谢任何其他替代方法。
UPDATE `campaigns`
SET `slug` = REPLACE(`slug`, `slug`,'hello')
WHERE `slug` IN (
SELECT `slug`
FROM (
SELECT `slug`
FROM `campaigns`
LIMIT 1
) slug
);
答案 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 '%/%/%';