Copiar conteúdo de um campo para outro

26/11/2015

Olá, bom dia a todos!

Preciso de uma ajudinha. Primeiramente, me desculpem, sou iniciante, e portanto o que puderem ser mais didáticos agradeço:

Tenho um ajuste para fazer em uma base de dados, e não sei bem como proceder. Se puderem me ajudar, lhes agradeço muito. Uso o phpmyadmin.

Preciso selecionar os registros de um tipo específico em uma "tabelaX" (ex: tipo = 5) e copiar as informações do campo "subsecao" deste "tipo = 5" para os campos de "secao" deste mesmo "tipo = 5", indicando que a "subsecao" que esteja vazia e/ou nula não seja copiada, para que o campo "secao", neste caso, permaneça como está, pois há casos onde o campo de "subsecao" não tem informação nenhuma e neste caso deverei manter as informações do campo "secao".

Qualquer informação que não tenha ficado clara, tento explicar melhor. E qualquer ajuda que puderem dar será muito bem vinda.

No mais, agradeço muito a quer puder me dar esse apoio!

Abraço!

Respostas

26/11/2015

William (devwilliam)

Luiz todo o processo de captura e atualização dos dados ocorrem na mesma tabela ou são tabelas diferentes?
Responder Citar

26/11/2015

Luiz

Luiz todo o processo de captura e atualização dos dados ocorrem na mesma tabela ou são tabelas diferentes?


Olá William, boa tarde.

Ocorrem na mesma tabela.

Obrigado por seu retorno.

Abraço
Responder Citar

26/11/2015

William (devwilliam)

Olá montei essa instrução, veja se serve para você, pode ser necessário alguns ajustes:
UPDATE tabelaX SET secao = subsecao 
WHERE tipo = 5 AND subsecao <> ''
Responder Citar

27/11/2015

Luiz

Olá montei essa instrução, veja se serve para você, pode ser necessário alguns ajustes:
UPDATE tabelaX SET secao = subsecao 
WHERE tipo = 5 AND subsecao <> ''


Olá William, bom dia.

Ok. Vou testar e retorno o resultado.

Ela pelo que entendi, atualiza a tabelaX com o conjunto secao igual ao subsecao, onde o tipo for 5, e a subsecao não estiver vazia/nula. O que são as duplas aspas simples no final?

Muito obrigado!
Responder Citar

27/11/2015

Marcos P

É justamente a condição que indica que a subsecao, obrigatoriamente, deve estar vazia ('') para ser atualizada...

Caso a coluna subsecao não seja obrigatória, você pode complementar com :

WHERE tipo = 5 AND ( subsecao <> '' and subsecao is not null )


Ou seja... a subsecao ser diferente de vazio '' e a subsecao não ser nula.

P.S.: Perdão por me meter na sua resposta William.
Responder Citar

27/11/2015

William (devwilliam)

Sem problemas Marcos P, sua colocação foi perfeita, acabei esquecendo de condicionar o valor NULL na minha instrução!
Responder Citar

27/11/2015

Luiz

É justamente a condição que indica que a subsecao, obrigatoriamente, deve estar vazia ('') para ser atualizada... Caso a coluna subsecao não seja obrigatória, você pode complementar com :
WHERE tipo = 5 AND ( subsecao <> '' and subsecao is not null )
Ou seja... a subsecao ser diferente de vazio '' e a subsecao não ser nula. P.S.: Perdão por me meter na sua resposta William.


Olá Marcos, bom dia.

Obrigado, é isso mesmo, a subsecao somente será copiada para secao caso ela não esteja vazia ou seja nula.

Obrigado aos amigos.

Assim que testar, retorno o resultado.

Bom final de semana!

Abraço.
Responder Citar

30/11/2015

Luiz

Olá amigos, bom dia.

Fiz um pequeno teste e funcionou perfeitamente. Só que agora tenho uma dúvida. A base é grande, cerca de 600mb, e li que alterações em bases grande, ainda mais neste caso, uma alteração que envolve uma quantidade significativa de dados, deve ser feito via SSH. E no caso de ser via SSH creio que a instrução seja outra. É isso mesmo?

Tenham uma ótima semana.

Obrigado.
Responder Citar

30/11/2015

Lisiane Vale

Escreva um Servlet que recebe como argumento um inteiro (enviada através de um formulário), e imprime no HTML resposta a tabuada desse número específico; pode me ajudar
Responder Citar

30/11/2015

William (devwilliam)

Olá amigos, bom dia. Fiz um pequeno teste e funcionou perfeitamente. Só que agora tenho uma dúvida. A base é grande, cerca de 600mb, e li que alterações em bases grande, ainda mais neste caso, uma alteração que envolve uma quantidade significativa de dados, deve ser feito via SSH. E no caso de ser via SSH creio que a instrução seja outra. É isso mesmo? Tenham uma ótima semana. Obrigado.


A instrução contínua a mesma, a única diferença é que vc vai executar via terminal!
Responder Citar

30/11/2015

Marcos P

Exatamente o mesmo comando, o que muda é a forma de conexão...

Seria interessante incluir a instrução em uma transação, restaurando os dados originais em caso de falha.
Responder Citar