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環境で必ずテストすべきです。そうしないと、すべてを壊してしまいます。そんな人にならないでください。