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

Query SQL per sostituire la stringa in base al carattere jolly

In MySQL versione 8.0 e successive, puoi utilizzare REGEX_REPLACE() funzione. In assenza di lo stesso , è possibile eseguire alcune complicate operazioni sulle stringhe. Questo si basa sul tuo conferma , che detta sottostringa si verifica solo una volta in un valore.

REPLACE() non ha alcun supporto per caratteri jolly, pattern, espressioni regolari ecc. Sostituisce solo un dato fisso sottostringa con un'altra fissa sottostringa, in una stringa più grande.

Invece, possiamo provare ad estrarre porzioni di post_content . Estrarremo la sottostringa iniziale prima di '<p><span id="more-' utilizzando Substring_Index() funzione. Allo stesso modo, estrarremo la sottostringa finale dopo il '"></span></p>' porzione.

Ora possiamo semplicemente Concat() queste parti per ottenere il post_content richiesto . Puoi trovare i dettagli delle varie funzioni String utilizzate qui:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

Ho anche aggiunto un WHERE condizione, in modo da selezionare solo quelle righe che corrispondono ai criteri di sottostringa indicati.

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 n. 1:dati prima delle operazioni di aggiornamento

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 n. 2:dati dopo le operazioni di aggiornamento

SELECT * FROM wp_posts;

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

Visualizza su DB Fiddle