marcosfj1 0 Denunciar post Postado Março 10, 2011 Olá pessoal Bom seguinte no meu banco tenho CPF e CNPJ dos clientes, o problema é q antigamente qdo o cliente se cadastrava se ele nao colocasse o CPF com pontos e - era inserido da maneira q ele escrevi no banco, hj isso é tratado entao nao há mais problemas Mas será q existe uma maneira de eu buscar os campos q nao estao tratados...no caso o CPF estar assim 123456789 Como identificar estes casos? Valeu Compartilhar este post Link para o post Compartilhar em outros sites
romabeckman 0 Denunciar post Postado Março 10, 2011 Você pode usar expressão regular para buscar os campos diferentes. Dê uma olhada na documentação do MySql (http://dev.mysql.com/doc/refman/5.0/en/regexp.html) Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Março 10, 2011 Vixi cara sei mto pouco de MYSQl Vou dar um olhada no link q me passou....mas se puder me ensina como fazer esta busca Alias cara uma pergunta melhor, já q eu vi q se sbe disso de sql e tal Tem como eu fazer algum tipo de condicao onde todos os cpfs q nao forem do formato 111.222.333-00 recebam tal formato? Compartilhar este post Link para o post Compartilhar em outros sites
advaldomesquita 93 Denunciar post Postado Março 10, 2011 No SQLServer o pessoal escreveu uma função para a validação de CPF e CNPJ. Deve ter algo no fórum sobre isso. De uma pesquisada marcosfj1 Abçs Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Março 10, 2011 No SQLServer o pessoal escreveu uma função para a validação de CPF e CNPJ. Deve ter algo no fórum sobre isso. De uma pesquisada marcosfj1 Abçs O cara beleza? Entao na verdade hj o sistema já tem a validação...o problema sao os registros antigos aqueles q colocaram seus CPFs sem ter validacao....ai eu queria um jeito de corrigir automaticamente no banco...mas nao sei como fazer valeu Compartilhar este post Link para o post Compartilhar em outros sites
romabeckman 0 Denunciar post Postado Março 10, 2011 Eu programo em PHP e faria desta forma: 1. Extrair a informação do banco de dados com query. 2. Depois fazer a converção no PHP para 111.222.333-00. 3. Gravar no banco de dados. $result = mysql_query("select * from clientes where cpf REGEXP '^[0-9]*$'", $con); while($linha = @mysql_fetch_assoc($resultado)){ if(strlen($linha['cpf']) == 11){ $cpf = $linha['cpf'][0].$linha['cpf'][1].$linha['cpf'][2].".". $linha['cpf'][3].$linha['cpf'][4].$linha['cpf'][5].".".$linha['cpf'][6].$linha['cpf'][7].$linha['cpf'][8]."-".$linha['cpf'][9].$linha['cpf'][10]; mysql_query("update clientes set cpf = '".$cpf."' where id = '".$linha['id']."'", $con); } } Faz um teste e vê se funciona. Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Março 10, 2011 Olá marcosfj1. Como não havia uma validação no início nas inserções no Banco, você poderá ter problemas, isto porque pode haver documentos inválidos mesmo com a retirada dos pontos e traços. Para retirar os pontos e traços, utilize a função Replace. Ex: Update tabela Set cpf = Replace(doc_federal,'.','') ,cpf = Replace(doc_federal,'-','') Isto fará com que todos os pontos e traços sejam retirados, porém como dito, ainda poderá existir documentos inválidos. Espero ter lhe sido útil. Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Março 10, 2011 Valeu cara vou fazer um teste aqui e logo te falo Mas primeiro vou fazer um backup do banco né hehe senao vai q da problema haha valeu Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Março 10, 2011 Prevenção sempre... :D Esqueci de colocar como faz para varrer todos que possuem valores diferentes de números, segue: Select * From tabela Where cpf Not Regexp '^[0-9]*$' Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Março 16, 2011 Olá Somente hj consegui testar e aplicar o q me foi ensinado aqui, e deu certo Agradeco a quem respondeu O problema já esta resolvido Valeu Compartilhar este post Link para o post Compartilhar em outros sites