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 alysson122010
      Galera estou começando a trabalhar com datatables porem tenho uma dificuldade pq tipo até 200 registros por pagina é aceitavel mas penso quando tiver 2000 registro carregar tudo numa pagina so da errado pq é muitos dados e pode travar tudo.
      Como posso fazer para listar com limite por pagina ou alguma maneira para poder colocar varios dados sem travar.
       
      estou usando assim:
      <script type="text/javascript">        $(document).ready(function() {             $('#example').DataTable({         "order": [[ 0, "desc" ]],         "language": {             "url": "//cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"         }     });         } );        </script> <table id="example" class="table table-striped table-bordered" style="width:100%">         <thead>             <tr>                 <th>Name</th>                 <th>Position</th>                 <th>Office</th>                 <th>Age</th>                 <th>Start date</th>                 <th>Salary</th>             </tr>         </thead>         <tbody>             <tr>                 <td>Tiger Nixon</td>                 <td>System Architect</td>                 <td>Edinburgh</td>                 <td>61</td>                 <td>2011/04/25</td>                 <td>$320,800</td>             </tr>             <tr>                 <td>Garrett Winters</td>                 <td>Accountant</td>                 <td>Tokyo</td>                 <td>63</td>                 <td>2011/07/25</td>                 <td>$170,750</td>             </tr>             <tr>                 <td>Ashton Cox</td>                 <td>Junior Technical Author</td>                 <td>San Francisco</td>                 <td>66</td>                 <td>2009/01/12</td>                 <td>$86,000</td>             </tr>             <tr>                 <td>Cedric Kelly</td>                 <td>Senior Javascript Developer</td>                 <td>Edinburgh</td>                 <td>22</td>                 <td>2012/03/29</td>                 <td>$433,060</td>             </tr>             <tr>                 <td>Airi Satou</td>                 <td>Accountant</td>                 <td>Tokyo</td>                 <td>33</td>                 <td>2008/11/28</td>                 <td>$162,700</td>             </tr>             <tr>                 <td>Brielle Williamson</td>                 <td>Integration Specialist</td>                 <td>New York</td>                 <td>61</td>                 <td>2012/12/02</td>                 <td>$372,000</td>             </tr>             <tr>                 <td>Herrod Chandler</td>                 <td>Sales Assistant</td>                 <td>San Francisco</td>                 <td>59</td>                 <td>2012/08/06</td>                 <td>$137,500</td>             </tr>             <tr>                 <td>Rhona Davidson</td>                 <td>Integration Specialist</td>                 <td>Tokyo</td>                 <td>55</td>                 <td>2010/10/14</td>                 <td>$327,900</td>             </tr>             <tr>                 <td>Colleen Hurst</td>                 <td>Javascript Developer</td>                 <td>San Francisco</td>                 <td>39</td>                 <td>2009/09/15</td>                 <td>$205,500</td>             </tr>         </tbody>         <tfoot>             <tr>                 <th>Name</th>                 <th>Position</th>                 <th>Office</th>                 <th>Age</th>                 <th>Start date</th>                 <th>Salary</th>             </tr>         </tfoot>     </table> <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script> <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/dataTables.bootstrap4.min.js"></script>  
    • By helkton
      iai galera fiz o seguinte script pra fazer uma busca em uma tabela Mysql via php, quando o usuario digita algo em um formulario ele é disparado e faz as devidas buscas na tabela
      $('#buscarAlunoOnline').keyup(function(){ var buscarAlunoOnline = $('#buscarAlunoOnline').val(); if(buscarAlunoOnline === ""){ var qdade_result_pagina = 50; //Quantidade de Registros por pagina var pagina = 1; //pagina inicial var idLocalidade = <?php echo $unidadeTrabalho?>;//localidade de trabalho do funcionario logado var tipoLogin = <?php echo $tipoLogin?>;//tipo de funcionario logado $(document).ready(function (){ listar_alunos(pagina, qdade_result_pagina, idLocalidade, tipoLogin);//Chama funcao para mostrar resultados }); function listar_alunos(pagina, qdade_result_pagina, idLocalidade, tipoLogin){ var dados = { pagina: pagina, qdade_result_pagina: qdade_result_pagina, idLocalidade: idLocalidade, tipoLogin: tipoLogin } $.post('listar_alunos_ead_db', dados , function(data){ $('#resultAlunOnline').html(data); }); } }else{ $.post('buscar_aluno_ead', {buscarAlunoOnline: buscarAlunoOnline, idLocalidade: <?php echo $unidadeTrabalho?>, tipoLogin: <?php echo $tipoLogin?>},function(data){ $('#resultAlunOnline').html(data); }); } }); até aqui tudo bem funcionou, o usuario digita, é disparado e chama a função buscar_aluno_ead, quando a pagina é aberta sem nenhuma busca eu chamo a função listar_alunos_ead_db 
       
      agora o b.o é o seguinte eu tinha uma janela modal que se abria pra poder fazer algumas alterações e edições, que parou de funcionar devido essa coisa que fiz, antes funcionava, antes de chamar as paginas assim via javaScript, o que posso fazer pra arrumar????
    • By Kellison Ruan
      Acho que não fui tão claro no título, portanto irei esmiuçar melhor aqui...
       
      É o seguinte, quero saber se há algum jeito de pegar as linhas de uma coluna q está em VARCHAR com informações do tipo "4 PONTOS DE ILUMINAÇÃO", dessa informação pretendo retirar somente o número que em questão é o "4" e colocá-lo em outra coluna INTEGER. Há essa possibilidade? Detalhe, as vezes as informações não está seguindo um padrão de vim somente como "4 PONTOS DE ILUMINAÇÃO" às vezes vêm dados com mais informações númericas que precisa distinguir, por exemplo, a mim só interessa pegar números que vem antecedendo as palavras "PONTOS", "PTOS", "PTS", têm algum jeito de distinguir isso?
    • By Kakaroto1309
      Preciso de uma ajuda para conectar com o banco. Estava tudo funcionando normalmente com MYSQL agora parou tudo e estou tentando trocar para MYSQLI.
      Não acho o erro, já tentei de tudo.
       
      connection.php
      <? function conecta() { $host = "localhost"; $user = "admin"; $pass = "123456789"; $db = "principal"; //Conexão $conexao = mysqli_connect($host, $user, $pass) or die("Erro na conexão:".mysqli_error()); //Selecionar BD mysqli_select_db($conexao,$db) or die("Erro ao selecionar BD"); } function desconecta() { mysqli_close(); } ?> validate.php
      <? if (empty($_POST) and (empty($_POST['cpUsuario']) OR empty($_POST['cpSenha']))) { header("Location: ../login.php"); exit; } else { include("connection.php"); conecta(); $varUsuario = $_POST['cpUsuario']; $varSenha = sha1($_POST['cpSenha']); $stt = "SELECT ID,txNome,txNivel FROM tbUsuario WHERE txUsuario='$varUsuario' and txSenha='$varSenha' LIMIT 1"; $sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao)); $existe = mysqli_num_rows($sql); if ($existe == 0) { echo "Login invalido ou inexistente na base"; exit; } else { $resultado = mysqli_fetch_assoc($sql); if (!isset($_SESSION)) { session_start(); } $_SESSION['UsuarioID'] = $resultado['ID']; $_SESSION['UsuarioNOME'] = $resultado['txNome']; $_SESSION['UsuarioNIVEL'] = $resultado['txNivel']; header("Location: ../menu.php"); exit; } } ?> O erro agora está dando o seguinte:
      PHP Warning:  mysqli_query() expects parameter 1 to be mysqli, null given in /home4/public_html/connection/validate.php on line 17
       
      Linha 17 é essa:
      $sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao));
       
      Se eu tiro o $conexao do mysqli_query ele da erro de "mysqli_query() expects at least 2 parameters, 1 given" e se eu coloco o erro é "mysqli_query() expects parameter 1 to be mysqli, null given"
       
      Alguem sabe como posso resolver isso?
    • By OSVALDO ARANTES JÚNIOR
      Boa tarde,  estou desenvolvendo uma consulta no php/mysql em diversas colunas. E gostaria de saber
      se existe um caracter especial para listar todos os dados, minha quere esta organizada da seguinte forma
       
      $query = sprintf("SELECT * FROM operacao  WHERE data_operacao BETWEEN '$data_inicial_rel' AND '$data_final_rel' AND estado_operacao = ' ' ORDER BY id_operacao ASC ;");
       
      quando declaro o valor do estado_operacao ele lista perfeitamente o valor, agora minha dúvida é se existe um 
      carater para listar todos os valores... para que eu use como value no opition do select, passar o valor TODOS pra a query
       
      desde já agradeço a atenção.
×

Important Information

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