sql >> Database >  >> Database Tools >> phpMyAdmin

SQL-query om string te vervangen op basis van jokertekens

In MySQL versie 8.0 en hoger kunt u REGEX_REPLACE() functie. In afwezigheid van hetzelfde , kunnen enkele gecompliceerde tekenreeksbewerkingen worden uitgevoerd. Dit is gebaseerd op uw bevestiging , dat de genoemde substring slechts één keer voorkomt in een waarde.

REPLACE() heeft geen ondersteuning voor wildcards, patronen, reguliere expressies etc. Het vervangt alleen een gegeven vaste substring met een andere vaste subtekenreeks, in een grotere tekenreeks.

In plaats daarvan kunnen we proberen delen van de post_content . te extraheren . We extraheren de leidende subtekenreeks vóór de '

Substring_Index() functie. Op dezelfde manier extraheren we de volgtekenreeks na de '">

' deel.

Nu kunnen we eenvoudig Concat() deze delen om de vereiste post_content . te krijgen . Details van de verschillende String-functies die worden gebruikt, vindt u hier:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

Ik heb ook een WHERE . toegevoegd voorwaarde, zodat we alleen die rijen kiezen die overeenkomen met onze opgegeven substringcriteria.

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>%';

Query #1:Gegevens vóór update-bewerkingen

SELECT * FROM wp_posts;

| post_content                                            |
| ------------------------------------------------------- |
| adasdaadsa<p><span id="more-35075"></span></p>121324124 |
| 1412123123<p><span id="more-232"></span></p>adasdaafas  |

Query #2:Gegevens na updatebewerkingen

SELECT * FROM wp_posts;

| post_content         |
| -------------------- |
| adasdaadsa121324124  |
| 1412123123adasdaafas |

Bekijken op DB Fiddle




  1. Hoe u uw DBeaver kiest

  2. Drool 6-werkbank integreren met Java-toepassing

  3. Databases migreren met behulp van het trackingmechanisme van phpMyAdmin

  4. Hoe kan ik de export van een mySQL-database automatiseren met phpMyAdmin