我正在尝试替换列中的某些文本 - 我确认存在的文本。当我运行查询时:
df <- df %>%
group_by(gender, size) %>%
distinct(item) %>%
filter(cumsum(type == "Fleece") <= 1) %>%
sample_n(5)
它返回359条记录。因此,当我运行此查询时,我预计会更改359条记录:
SELECT Body FROM dbname.tcontent
where body like '%http://local.website.org%'
and display=1
and approved=1;
但是,该查询找到了359个匹配项,但未更新任何列。消息显示:&#34; 0行受影响的行匹配:359更改:0警告:0。我非常确定我已经正确识别了SQL,因为我已经确认了至少有三个来源。我读过359&#34;匹配&#34;基于与WHERE子句匹配的记录,所以我认为问题在于第二行:
update dbname.tcontent
set Body = replace(Body, 'http://local.website.org', '/foldername')
where instr(Body, 'http://local.website.org') > 0
and display=1
and approved=1;
即使SQL是正确的。我已取消选中&#34;安全更新&#34;在我的偏好中只是为了确定,并且仍然没有更新行。
我仍然认为,我正在替换的文本中的斜线和/或点可能会使取代方法绊倒,尽管我做了我想要做的事情here。
提前感谢您的任何帮助!
答案 0 :(得分:2)
无论出于何种原因,我不得不将其分解为两个陈述。第一个更新语句替换了http://什么都没有,第二个替换了URL的其余部分:
update database.tcontent set Body = replace(Body, 'http://', '') where Body like '%http://local.website.org%';
update database.tcontent set Body = replace(Body, 'local.website.org', '/foldername') where Body like '%local.website.org%';
答案 1 :(得分:1)
请尝试此查询:
UPDATE `dbname`.`tcontent`
SET `body`= REPLACE(`body`, 'FindThisText', 'ReplaceWithThisText')
WHERE `body` like '%FindThisText%' AND `display`=1 and `approved`=1;
在运行此类UPDATE查询之前,请始终备份您的表。
答案 2 :(得分:1)
这不起作用吗?
设置Body ='ReplaceWithThisText'?