2013-03-18 71 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

相關問題