Pergunta

Eu tenho um banco de dados transferidos grande phpbb3 a partir de um banco de dados latin1 a um utf-8 Tudo correu bem, agora eu preciso mudar os caracteres "estranhos" no banco de dados. Ontem eu encontrei um método que funcionou, agora não consigo encontrá-lo mais, eu tentei:

update phpbb_topics set topic_title = replace(topic_title, 'Ã', 'à');
update phpbb_topics set topic_title = replace(topic_title, 'è', 'è');

Basicamente eu preciso mudar todos os personagens a No campo tabela para um e assim por diante.

Como você pode fazer isso?

Graças

Foi útil?

Solução

atualização phpbb_topics definir TOPIC_TITLE = substituir (substituir (TOPIC_TITLE, 'a', 'E'), 'a', 'a');

Você deve responder-se as seguintes questões:

  • o que os dados binários são armazenados em banco de dados (uso ascii () ou SELECT ... INTO DUMPFILE)
  • que dados binário é enviado para o cliente (nem sempre é o mesmo que armazenado)
  • como seus programas cliente recebeu dados binários? (Experimentar diferentes clientes e diferentes opções)

Outras dicas

Gostaria de despejá-lo em um arquivo .sql e, em seguida, substituir os caracteres com sed ou um editor de texto (se o arquivo não é grande). Depois que você executar o script novamente. Talvez haja uma maneira de fazer isso no banco de dados diretamente, mas eu não sei isso.

O problema com a minha solução é que não é atômica. Alterações no db entre o despejo e a reinserção são perdidas.

Greetings Raffael

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top