In MySQL-Version 8.0 und höher können Sie
REPLACE()
hat keine Unterstützung für Wildcards, Muster, reguläre Ausdrücke usw. Es ersetzt nur ein gegebenes fixed Teilstring mit einem anderen fixed Teilstring, in einem größeren String.
Stattdessen können wir versuchen, Teile des
post_content
zu extrahieren . Wir werden die führende Teilzeichenfolge vor dem '
Portion. Substring_Index()
Funktion. In ähnlicher Weise extrahieren wir den nachgestellten Teilstring nach '">
Jetzt können wir einfach Concat()
diese Teile, um den erforderlichen post_content
zu erhalten . Details zu verschiedenen verwendeten String-Funktionen finden Sie hier:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
Ich habe auch ein WHERE
hinzugefügt Bedingung, sodass wir nur die Zeilen auswählen, die unseren gegebenen Teilstring-Kriterien entsprechen.
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>%';
Abfrage Nr. 1:Daten vor Aktualisierungsvorgängen
SELECT * FROM wp_posts;
| post_content |
| ------------------------------------------------------- |
| adasdaadsa<p><span id="more-35075"></span></p>121324124 |
| 1412123123<p><span id="more-232"></span></p>adasdaafas |
Abfrage Nr. 2:Daten nach Aktualisierungsvorgängen
SELECT * FROM wp_posts;
| post_content |
| -------------------- |
| adasdaadsa121324124 |
| 1412123123adasdaafas |