Jump to content
bradry

Como continuar uma extração de onde parei ?

Recommended Posts

Eae galera tranquilo ?

 

Sou novo no SQL. E estou usando bastante banco agora na empresa e tenho a seguinte dúvida..

 

Tenho uma base de 1 milhão de registros formados de CPF, NOME e TELEFONE.

 

Tenho que extrai 10 mil registros por dia. Como faço para continuar de onde parei ? por exemplo, extrai  20 mil reg. é depois como faço pra pegar da linha 20 mil até o 30 mil ?

Share this post


Link to post
Share on other sites

Como se dá esta extração ?

De onde para onde ?

Esta tabela origem tem alguma chave ?

Qual a razão dos "10 mil registros por dia" , não é viável importar tudo ?

 

Share this post


Link to post
Share on other sites

Olá Motta.

 

Esta tabela origem tem alguma chave ?

 

Não. Foi feita de maneira muito simples a principio para somente consulta, não tem nada de muito complexo ainda, mas pretendo melhora lá.

 

Qual a razão dos "10 mil registros por dia" , não é viável importar tudo ?

 

Eu posso importar tudo sim mas queria aprender mais para fins de aprendizado pois tbm tenho arquivos de vão muito além de 1milhão.

 

Suas outras duas perguntas não entendei desculpe

Share this post


Link to post
Share on other sites

Bom uma solução possível seria :
 

select cpf,nome,telefone
from <tabela_origem>
where not exists (select null
                  from   <tabela_destino>
                  where <tabela_destino>.cpf = <tabela_origem>.cpf)
limit 10000

mas dependendo do ambiente , índices etc , esta pode ser inviável.

 

com mais detalhes seria possível pensar uma solução melhor.

 

Share this post


Link to post
Share on other sites

Obrigado pelo retorno !

 

Vou tentar melhorar a estrutura dessa tabela para melhorar a consulta.

 

Tem alguma dica do que posso utilizar nessa nova criação para melhorar ?

 

 

Share this post


Link to post
Share on other sites

índices , estatísticas atualizadas etc

 

 

Share this post


Link to post
Share on other sites

Olá Motta,

 

Depois de alguns dias estudando consegui melhorar a estrutura do meu banco deixei da seguinte forma.

image.png.5acbf9bab54dda2a6cb0fe555f2a7e15.png

 

ID esta com AI, ZF, P Key.

 

Só que tem um porém, eu preciso pegar somente os números que iniciam com 21, pra isso eu utilizo a query abaixo

 

select Tel_1
from base_pre
where  substr(TEL_1,1,2) = '21';

 

Até aqui consigo me virar. Agora eu queria controlar essa saída de dados de melhor forma utilizando a coluna Data_exp

 

Teria alguma forma de eu colocar a data nos casos que peguei delimitado ao inicio 21 e inserir na coluna Data_exp  ?

 

 

 

 

Share this post


Link to post
Share on other sites
Citar

 

Até aqui consigo me virar. Agora eu queria controlar essa saída de dados de melhor forma utilizando a coluna Data_exp

 

Teria alguma forma de eu colocar a data nos casos que peguei delimitado ao inicio 21 e inserir na coluna Data_exp  ?

 

 

Desculpe , não entendi o problema.

Share this post


Link to post
Share on other sites

Queria inserir a data nos dados que já extrai

 

Por exemplo, para pegar o inicio 21 faço a substr.

 

select Tel_1
from base_pre
where  substr(TEL_1,1,2) = '21';

 

Depois que retorna o resultado, quero utilizar somente 100 linhas. Minha dúvida e a seguinte , como posso colocar a data nas 100  primeiras linhas ? 

 

Se eu não tivesse o critério do inicio 21 usaria isso

 

UPDATE teste
SET data_exp = "2019-06-18"
WHERE  ID BETWEEN 1 and 100;

 

Tem alguma ideia de como poderia fazer isso ?

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Agnosticado
      Olá senhores, estou intrigado com uma coisa: tenho o seguinte código:
      $id_exame = "50296"; $pesquisa = "SELECT motivo, CASE WHEN motivo = 'Intensa superposição celular em mais de 75% de esfregaço' THEN 'A' WHEN motivo = 'Sangue em mais de 75% de esfregaço' THEN 'B' WHEN motivo = 'Artefatos de dessecamento mais de 75% de esfregaço' THEN 'C' ELSE 'TESTE' END AS opcao FROM insatisfatorio WHERE exame_id = '$id_exame' ORDER BY opcao ASC"; $linha = mysql_query($pesquisa); while ($pesquisa = mysql_fetch_array($linha) or die(mysql_error())){ echo $pesquisa["opcao"]; } Quando executo usando
       
      $linha = mysql_query($pesquisa);
                 while ($pesquisa = mysql_fetch_array($linha) or die(mysql_error())){
              echo $pesquisa["opcao"];
              echo "<br>";
       
       
      a saída é palavra "TESTE" que o default e não o texto "B" que corresponde a string da chamada do $id_exame = 50296.
       
      O ESQUISITO é que quando executo todo select que está na variável $pesquisa direto no SGBD dá certo e o texto "B" aparece normalmente.
      PQ DIABOS ISSO ACONTECE???
    • By Gemenson Miranda
      Oi pessoal, estou com um problema na minha hospedagem LInux do Godaddy, publiquei meu site, fiz o apontamento correto do banco de dados, mas quando acesso a URL o site me exibe HTTP ERROR 500 exibe realizei a configuração do arquivo .htaccess, alterei as permissões para (755), nada disso resolve... A questão e que sempre que comento as informações de apontamento do banco de dados no arquivo index.php o site carrega normalmente, porem sem conexão com o bando mysql, o que me faz pensar que o erro pode esta relacionado ao banco mysql, porem não consigo visualizar o erro por que a tela fica toda branca e não retorna nada, como resolver esse erro ou ao menos exibir qual erro causa ele?? agradeço!
    • By maruoppolo
      Olá, tenho 2 tabelas:
       
      tb_dados: ID - MUSICA
       
      tb_votos: ID - VOTO - RADIO - MUSICA
       
      Preciso fazer uma query que traga as musicas da tb_dados porém ordenando pelo número de votos que ela teve na tb_votos.
       
      Então assim, existem 2 tipos de voto 1 = like e 2 = dislike, cada ver que um usuário vota eu pego qual radio que ele esta ouvindo e salvo no campo radio, o id da musica na tb_dados e salvo no campo musica da tb_votos e coloco o número 1 para like e 2 para dislike no campo voto.
       
      A query precisa contar quantos likes teve na tv_votos filtrando por radio e mostrando os resultados em ordem decrescente as musicas com mais likes.
       
      A ideia é trazer as 10 musicas com mais like de cada radio
       
      Alguma ideia de como fazer?? Estou enroscado nisso a dias.
    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
    • By rainbowily
      Sou nova em sql e estou com duvida em como fazer uma consulta:
      Eu tenho uma tabela de produto(id, descricao), cor(id, nome) e produto_cor(id, id_produto, id_cor). Preciso descobrir se tem algum produto que tenhas as cores (1,2,3) respectivamente para não deixar cadastrar outro produto. Alguém poderia me ajudar? Obrigada



×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.