SQL:查找和替换SQL?

时间:2010-07-08 17:10:56

标签: sql mysql database

我有一个MySQL InnoDB数据库。

我在名为article的“url”表格中有一栏需要更新。

存储在article.url =

/blog/2010/article-name
/blog/1998/the-article-name
/blog/...

我需要将 /blog/ 更改为 /news/ 。 (例如现在的article.url ='/ news /...')

article.url 列中用“/ news /”替换“/ blog /”所需的SQL是什么?< / p>

3 个答案:

答案 0 :(得分:4)

update url
set article = replace(article, '/blog/', '/news/')
where article like '/blog/%'

答案 1 :(得分:1)

如果每个url以“/ blog /”开头并且您不想更改除前缀之外的任何内容,则可以使用substring()和concat()而不是replace():

update article
set url = concat('/news/',substring(url,7))
where url like '/blog/%';

答案 2 :(得分:0)

我最近想在动态中替换MySQL中的字符串,但该字段可能包含2个项目。所以我在REPLACE()中包含REPLACE(),例如:

REPLACE(REPLACE(field_name, “what we are looking for”, “replace first instance”), 
       “something else we are looking for”, “replace second instance”)

这是我用来检测布尔值的语法:

REPLACE(REPLACE(field, 1, “Yes”), 0, “No”)

希望这有帮助!