ウェブサイト検索

MySQLクエリで文字列を置き換える方法


これは本当に愚かな記事ですが、私がこれを書く唯一の理由は、ようやく構文を忘れず、MySQLのREPLACE関数の引数がどの順序であるべきかをグーグルしなくて済むことを期待しているからです。そして、調べようとするたびに、ほぼ常にMySQLの他のREPLACEコマンドのドキュメントページにたどり着いてしまいます...これはINSERT文と同じ構文を使用してテーブルの行を更新するために使用されるものです。混乱させてくれてありがとう、MySQL!

私がやろうとしているのは、シンプルなクエリでWordPressデータベース内の検索と置換を行うことです。例えば、HTGをHTTPSに切り替えたときに、HTTPバージョンを指す古いリンクや画像がたくさんありました。それで、すべての リンクを に更新する必要がありました。そして、私たちのデータベースには約20,000の投稿レコードがあるため、100人のインターンを雇う必要があるでしょう。それか... 一つのSQLステートメントで済む話です。

それでは、これが私がこの情報を調べる最後の機会であることを願って、MySQLクエリを使用して文字列を置換するための構文は次のとおりです:

UPDATE table set column1=REPLACE(column1,'SEARCH','REPLACE');

私たちの例の目的として、WordPressで全てのリンクと画像をHTTPSに更新する場合、最終的には次のようになりました:

UPDATE wp_posts set post_content = REPLACE(post_content, 'https://linux-console.net','https://linux-console.net');

それにより、私は会社が100人を雇ってリンクを手動で置き換えるのを救いました。私は昇給に値します。

新しい人ですか?もしMySQLプロンプトの開き方がわからないのであれば、この記事を読むべきではないかもしれません。ただし、一応、ターミナルを開いてwp-config.phpの値を使用して(WordPressを使用していると仮定して)データベースに接続し、その後SQLステートメントを貼り付けることができます。

mysql -uUser -pPassword -hHost databasename

このことを言ったことがあるでしょうか、実行する前におそらくWordPressデータベースをバックアップするべきだと。また、開発環境やQA環境で必ずテストすべきです。そうしないと、すべてを壊してしまいます。そんな人にならないでください。

関連記事: