sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Consulta SQL para reemplazar la cadena basada en comodines

En MySQL versión 8.0 y superior, puede usar REGEX_REPLACE() función. En ausencia de lo mismo , se pueden realizar algunas operaciones de cadena complicadas. Esto se basa en su confirmación , que dicha subcadena aparece solo una vez en un valor.

REPLACE() no tiene ningún soporte para comodines, patrones, expresiones regulares, etc. Solo reemplaza un determinado fijo subcadena con otra fijada subcadena, en una cadena más grande.

En su lugar, podemos intentar extraer partes del post_content . Extraeremos la subcadena principal antes del '<p><span id="more-' usando Substring_Index() función. Del mismo modo, extraeremos la subcadena final después de '"></span></p>' parte.

Ahora, simplemente podemos Concat() estas porciones para obtener el post_content requerido . Puede encontrar detalles de varias funciones de cadena utilizadas aquí:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

También he añadido un WHERE condición, de modo que elijamos solo aquellas filas que coincidan con nuestros criterios de subcadena dados.

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

Consulta n.º 1:datos antes de las operaciones de actualización

SELECT * FROM wp_posts;

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

Consulta n.º 2:datos después de las operaciones de actualización

SELECT * FROM wp_posts;

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

Ver en DB Fiddle