[解決済み] mySQLのreplace()を使用して、複数のレコードの文字列を置換するにはどうすればよいですか?
質問
あるデータベースには、1つのカラムに不正なデータを含むレコードが多数あり、その中で埋め込みエディターがエスケープすべきでないものをエスケープしてしまい、生成されたリンクを壊しています。
すべてのレコードの悪い文字を置換するクエリーを実行したいのですが、その方法がわかりません。私は
その
replace()
機能
をMySQLで使用したいのですが、クエリ内でどのように使用すればよいのでしょうか?
例えば、次のような文字列に置き換える場合、正しい構文は何でしょうか。
<
を実際の小山括弧(
<
を持つすべてのレコードで
<
の中にある
articleItem
列を作成できますか?1つのクエリでできるのか(つまり、選択と置換をすべて一度に行う)、それとも複数のクエリを行わなければならないのでしょうか?複数のクエリで行う場合、どのようにして
replace()
を使用して、複数のレコードのフィールドの値に対して置換を行うことはできますか?
どのように解決するのですか?
ごく一般的なレベルでは
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')
WHERE SomeOtherColumn LIKE '%PATTERN%'
あなたの場合、これらはエスケープされたと言いますが、どのようにエスケープされたのかが明記されていないので、仮にこれらが
GREATERTHAN
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')
WHERE articleItem LIKE '%GREATERTHAN%'
クエリは実際には文字列の内部で動作するので
WHERE
節でパターンマッチを行っても、パフォーマンスの向上は望めず、むしろサーバーの負担を増やすことになります。このクエリのパフォーマンスを向上させるような別のWHERE句がない限り、このように単純に更新することができます。
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')
また、複数の
REPLACE
コール
UPDATE MyTable
SET StringColumn = REPLACE (REPLACE (StringColumn, 'GREATERTHAN', '>'), 'LESSTHAN', '<')
また、(保存時ではなく)データ選択時に行うことも可能です。
だから、代わりに:
SELECT MyURLString From MyTable
を行うことができます。
SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable
関連
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] Vimで文字を改行で置き換える方法
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] MySQLの文字列置換
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】sedでパターンに基づいたテキストを一度に入れ替えるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mysqlでインデックスに障害が発生する原因は何ですか?
-
MySQLのLike演算子に関する詳細
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
MySQLインストールチュートリアル(Windows用)詳細
-
Mysqlデータベースの手動および定期的なバックアップ手順
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
PostMan レポート エラー: 接続 ECONNREFUSED 127.0.0.1:port number
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み】MySQLの検索とフィールドの一部のテキストの置換