MySQLバージョン8.0以降では、<を使用できます。 code> REGEX_REPLACE() 働き。 同じ 、いくつかの複雑な文字列操作を実行できます。これは、確認 、上記のサブ文字列が値に1回だけ出現していること。
REPLACE()
ワイルドカード、パターン、正規表現などはサポートされていません。特定の固定を置き換えるだけです。 別の固定の部分文字列 大きな文字列の部分文字列。
代わりに、
post_content
の一部を抽出してみることができます 。 '
の後に続く部分文字列を抽出します 部分。 Substring_Index()を使用するコード>
働き。同様に、
'">
これで、単純に Concat()
必要なpost_content
を取得するためのこれらの部分 。ここで使用されるさまざまな文字列関数の詳細を見つけることができます: https: //dev.mysql.com/doc/refman/8.0/en/string-functions.html
WHERE
も追加しました 条件。指定された部分文字列の基準に一致する行のみを選択します。
UPDATE wp_posts
SET post_content =
CONCAT(
SUBSTRING_INDEX(post_content,
'<p><span id="more-',
1),
SUBSTRING(post_content,
LOCATE('"></span></p>',
post_content,
LOCATE('<p><span id="more-',
post_content)
) + 13) -- 13 is character length of "></span></p>
)
WHERE post_content LIKE '%<p><span id="more-%"></span></p>%';
クエリ#1:更新操作前のデータ
SELECT * FROM wp_posts;
| post_content |
| ------------------------------------------------------- |
| adasdaadsa<p><span id="more-35075"></span></p>121324124 |
| 1412123123<p><span id="more-232"></span></p>adasdaafas |
クエリ#2:更新操作後のデータ
SELECT * FROM wp_posts;
| post_content |
| -------------------- |
| adasdaadsa121324124 |
| 1412123123adasdaafas |