Pesquisar dados dentro de um campo tipo text e migrar de uma tabela para outra usando insert, update com subselect

MySQL, SQL Comentar >> Marcelo Korjenioski

Cria as tabelas.


create table
tb_comentario (
pk_comentario int not null auto_increment primary key,
tx_comentario text
)

create table
tb_data_comentario (
pk_data_comentario int not null auto_increment primary key,
dt_comentario date
)

Faz o insert dos dados para teste.


insert  into tb_comentario (tx_comentario)
values
('Tutorial de procura e migração de dados no MySql DATA=20090515 (YYYYMMDD)'),
('Tutorial de procura e migração de dados no MySql DATA=20090516 (YYYYMMDD)'),
('Tutorial de procura e migração de dados no MySql DATA=20090517 (YYYYMMDD)')

Veri­fica se tabela rece­beu os dados do insert.

select * from tb_comentario
WHERE tx_comentario is not null

Pes­qui­sar dados den­tro de um campo tipo text para pegar somente a data.


SELECT DATE(CONCAT(SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +5,4) , "-" , SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +9,2) , "-" , SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +11,2)))
FROM tb_comentario
WHERE  tx_comentario is not null

Faz o Insert dos dados da tabela tb_comentario para tb_data_comentario.


INSERT INTO tb_data_comentario (pk_data_comentario,dt_comentario)
SELECT
pk_comentario ,
DATE(CONCAT(SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +5,4) , "-" , SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +9,2) , "-" , SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +11,2))) as date
FROM tb_comentario
WHERE  tx_comentario is not null

Faz o Update dos dados da tabela tb_comentario.

UPDATE tb_data_comentario
SET
dt_comentario = (SELECT DATE(CONCAT(SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +5,4) , "-" , SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +9,2) , "-" , SUBSTRING(tx_comentario,INSTR(tx_comentario, 'DATA=') +11,2))) + INTERVAL 3 DAY as date
FROM tb_comentario
WHERE tx_comentario is not null and pk_data_comentario = pk_comentario )

Veri­fica se os dados foram atualizados.

select * from tb_data_comentario

Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.

Com­par­ti­lhe com seus ami­gos:
  • Print
  • Facebook
  • Google Bookmarks
  • PDF
  • RSS
  • Twitter
  • LinkedIn



Deixe um comentário

blog comments powered by Disqus
Designed by NattyWP Wordpress Themes.
Images by desEXign.