275

通常、私は手動検索を使用して、phpmyadminを使用してMySQLデータベースのテキストを置き換えます。今はうんざりしていますが、クエリを実行してphpmyadminのテーブル全体でテキストを検索して新しいテキストに置き換えるにはどうすればよいですか?

例:キーワードを検索domain.comし、に置き換えwww.domain.comます。

4

13 に答える 13

624

single table更新 の場合

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

multiple tables~から

すべてのテーブルから編集したい場合、最善の方法は、 を取り出してdumpアップロードfind/replaceすることです。

于 2012-08-07T04:06:04.463 に答える
27

mysite.com/wordpress を検索して mysite.com/news に置き換えるなど、すべての wordpress ブログ投稿のテキストを検索して置換するために、PHPmyadmin で SQL クエリを実行します。この例のテーブルは tj_posts です。

UPDATE `tj_posts`
SET `post_content` = replace(post_content, 'mysite.com/wordpress', 'mysite.com/news')
于 2013-11-05T02:57:04.813 に答える
10

もう 1 つのオプションは、データベース内の各列のステートメントを生成することです。

SELECT CONCAT(
    'update ', table_name , 
    ' set ', column_name, ' = replace(', column_name,', ''www.oldDomain.com'', ''www.newDomain.com'');'
) AS statement
FROM information_schema.columns
WHERE table_schema = 'mySchema' AND table_name LIKE 'yourPrefix_%';

これにより、実行できる更新ステートメントのリストが生成されます。

于 2015-04-02T13:17:05.877 に答える
9
 UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);

たとえば、John の出現箇所をすべて Mark に置き換えたい場合は、以下を使用します。

UPDATE student SET student_name = replace(student_name, 'John', 'Mark');
于 2014-07-08T11:11:44.947 に答える