2013-03-18 59 views
1

一种情况看起来像这样: 我想在MySQL数据库中为phpBB 3编写一个批量编辑。我已经在这里看到了MySQL查询,告诉我如何对post_text进行如此的批量编辑,改变所有的链接。如何在另一个字段满足确切的要求时在一个字段中批量编辑mysql表?

我知道我能做到这样:

UPDATE phpbb_posts SET POST_TEXT = 'new_link.eu' WHERE IS POST_TEXT 'old_link.eu'。

而且我知道会将所有到old_link.eu的链接更改为new_link.eu。

但是我的情况不同。我想只对符合确切要求的帖子进行编辑。有很简单 - 我希望查询只更改职位具有特定forum_id场(它们属于正确的子论坛,在这里我想看到的变化)。

我相信它是可帮助很多人使用不同的脚本的事情。

在此先感谢!

回答

0

除非有一些复杂性您的要求,我们不能从这里看,你应该能够做到这一点很容易。

UPDATE phpbb_posts 
    SET post_text='new_link.eu' 
    WHERE post_text = 'old_link.eu' 
    AND forum_id = <<whatever>> 

在执行此操作之前,您绝对应备份您的表格内容。如果您在查询中发现某些内容,除非您有备份,否则很难恢复。

您也可以尝试

SELECT * 
    FROM phpbb_posts 
    WHERE post_text = 'old_link.eu' 
    AND forum_id = <<whatever>> 

你运行你的更新,以确保您得到正确的行之前。

+0

非常感谢,但是 - 我不知道为什么 - 虽然我完全按照你在这里写的方式写下查询,但它似乎并没有工作。 它看起来就像这(下面的话是波兰人,所以不介意) UPDATE phpbb_posts SET POST_TEXT = 'Uczeń绝地' WHERE POST_TEXT = '绝地学徒' 和forum_id = 123 当然,我想在phpbb3的每个帖子中将“Jedi Apprentice”改为“UczeńJedi”,该文章属于ID为123的子论坛。我做错了什么? – user2182431 2013-03-19 14:46:14

+0

当你做这个查询时你会得到什么? 'SELECT * from phpbb_posts WHERE post_text ='Jedi Apprentice'AND forum_id = 123'你应该得到你希望更新的记录。 – 2013-03-19 16:06:32

相关问题