phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Consulta SQL para substituir string com base em curinga


No MySQL versão 8.0 e superior, você pode usar REGEX_REPLACE() função. Na ausência de o mesmo , algumas operações de string complicadas podem ser feitas. Isso é baseado em seu confirmação , que a referida substring está ocorrendo apenas uma vez em um valor.

REPLACE() não tem suporte para curingas, padrões, expressões regulares etc. Ele apenas substitui um determinado fixo substring com outro fixo substring, em uma string maior.

Em vez disso, podemos tentar extrair partes do post_content . Extrairemos a substring inicial antes do '

Substring_Index() função. Da mesma forma, extrairemos a substring final após o '">

' parte.

Agora, podemos simplesmente Concat() essas partes para obter o post_content necessário . Você pode encontrar detalhes de várias funções de String usadas aqui:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

Eu também adicionei um WHERE condição, de modo que escolhemos apenas as linhas que correspondem aos nossos critérios de substring fornecidos.
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:dados antes das operações de atualização
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:dados após operações de atualização
SELECT * FROM wp_posts;

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

Visualizar no DB Fiddle