2014-02-09 65 views
0

我將如何搜索並替換數據庫中的多個值?在MySQL數據庫中搜索替換查詢

例如,如果我想在表格中搜索黃色,藍色和綠色的所有提及,並將它們全部替換爲「黑色」,那麼我將如何在同一時間執行該操作,而無需執行查詢每個單詞?

我有表wp_posts並希望此搜索和替換post_content中的所有內容。

該命令到底是什麼樣的?

謝謝!

+0

如果這是一次性的事情,您可能只需轉儲表內容即可快速完成工作,在文本編輯器中對.sql文件執行搜索並替換,然後再將它上傳到數據庫。 (這當然只適用於不替換任何對SQL語法至關重要的詞)。 – CBroe

回答

0

對於single table更新

UPDATE `table_name` 
SET `field_name` = replace(same_field_name, 'unwanted_text', 'wanted_text') 

multiple tables -

如果你想從所有表編輯,最好的辦法是採取dump然後find/replace,並將它上傳。

和/或使用陣列,可以選擇指定的顏色,應該是unwanted text和黑色的顏色應該是wanted text

+0

嗨,我不需要多個表 - 我需要多個值。因此,我們需要搜索並替換所提供的示例中的一個表格,一個字段以及大量值。轉儲和查找/替換會花費太長時間,因爲有太多的值需要逐個搜索並逐個替換。 – user1446650

0

你可以做這樣的事情

UPDATE wp_posts 
    SET post_content = REPLACE(
         REPLACE(
          REPLACE(post_content, 
          'yellow', 'black'), 
         'blue', 'black'), 
         'green', 'black') 
WHERE post_content LIKE '%yellow%' 
    OR post_content LIKE '%blue%' 
    OR post_content LIKE '%green%' 

這裏是SQLFiddle演示