MySQL

1. MySQL

fel 32
FeL32

(usa Slackware)

Enviado em 09/11/2012 - 19:24h

Eu quero fazer um indice de Códigos em uma tabela eu precizo colocar os zeros a esquerda algué tem alguma duvida!!! rs Resposta???


  


2. Re: MySQL

Adriano Moreira da Silva
adri3d

(usa Arch Linux)

Enviado em 09/11/2012 - 20:03h

zero a esquerda e inútil aprenda a usar a função LPAD do mySql

tipo assim:
select LPAD(<nome_da_coluna>, 6, '0') from <nome_da_tabela>  


retorna
000001
000002
...
000101
000102


3. Re: MySQL

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/11/2012 - 22:44h

Zero a esquerda não é inútil! Um exemplo é CPF e CNPJ com zero a esquerda.

Pesquise por zerofill.

Conversei com um brother aqui... Ele transforma em texto. ;)


4. Re: MySQL

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 10/11/2012 - 16:32h

Você pode alterar o tipo de dado do campo desejado, ao colocar um unsigned zerofill todos os registros assumem este novo comportamento:


ALTER TABLE `nome_da_tabela` CHANGE `campo_desejado` `campo_desejado` INT( 11 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT


5. Re: MySQL

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 10/11/2012 - 16:40h

adri3d escreveu:

zero a esquerda e inútil aprenda a usar a função LPAD do mySql

tipo assim:
select LPAD(<nome_da_coluna>, 6, '0') from <nome_da_tabela>  


retorna
000001
000002
...
000101
000102


discordo totalmente de sua posição, o zero a esquerda é fundamental quando se está trabalhando com sistemas grandes que exigem cpf, numero de contas bancárias, numero do PIS de trabalhadores (atualmente foi estipulado pelo MTE que são 12 digitos, contudo somente estão tendo numeros de PIS com 12 digitos jovens que recebendo sua carteira de trabalho atualmente. Se não me engano o primeiro PIS com 12 digitos no Brasil foi criado no inicio de Fevereiro deste ano ou fim de Janeiro... não sei ao certo a data). No caso de um cpf antigo com apenas 9 ou 10 digitos, ou ainda o numero de uma conta com apenas 3 digitos ex: XXX sendo que o layout do banco são 9 digitos... o que fazemos???? ZERO A ESQUERDA!!! como eu mencionei, é algo que não existe a minima possibilidade de deixarmos de lado, tem que ser usado!


6. Re: MySQL

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 11/11/2012 - 03:21h

Deixe como está mesmo, alterar para colocar os zeros a esquerda vai piorar a performance do banco de dados nas consultas por este campo, basta usar a tática do LDAP para exibir na formatação desejada é bem melhor assim, tenho bases com milhões de registro e detalhes como esse são bem perceptíveis com bases grandes.

A questão do ZERO à esquerda não vale nada é matemática simplesmente, no caso do banco de dados é desperdício de espaço e performance armazená-los, basta usar a tática do LPAD ao exibir e pronto.


7. Re: MySQL

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 11/11/2012 - 14:20h

rai3mb escreveu:

Deixe como está mesmo, alterar para colocar os zeros a esquerda vai piorar a performance do banco de dados nas consultas por este campo, basta usar a tática do LDAP para exibir na formatação desejada é bem melhor assim, tenho bases com milhões de registro e detalhes como esse são bem perceptíveis com bases grandes.

A questão do ZERO à esquerda não vale nada é matemática simplesmente, no caso do banco de dados é desperdício de espaço e performance armazená-los, basta usar a tática do LPAD ao exibir e pronto.


Discordo, quando vc coloca um campo do tipo int com 10 posições INT(10) por exemplo, na query o banco lerá todas as 10 posições tentando encontrar o seu conteudo, agora em um campo vc terá apenas 1 digito e no ultimo registro poderá ter 10, no entanto o desempenho será o mesmo ou até mesmo inferior que se estivesse com zerofill, visto que com zerofill o mysql sabe exatamente que tem que exibir todos os 10 caracteres, já sem zerofill haverá mais processamento pois existem campos com 1, 2, 3, 4, 5 ... n caracteres. Também digo isso argumentando que possuo bases imensas e o desempenho é muito melhor usando zerofill


8. Re: MySQL

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 11/11/2012 - 16:31h

Estou falando de banco de dados como um todo, uso SQL SERVER, POSTGRES e MYSQL, tipo integer quarda os números apenas, não trabalho com tipo INT(TAMANHO) isso é impensável pra mim ;-)


Pode falar o que quiser no fim das contas, as bases que tenho com milhões de registros me trazem a experiência do que citei antes.

E olha que tenho os campos CPF, CONTA, AGENCIA, que vc citou, pois atuo em um dos nossos grandes bancos.

Em fim é minha opinião e experiência prática, peço-lhe que aceite-a, assim como aceito a sua.

E só, abraços.


9. Re: MySQL

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 11/11/2012 - 16:41h

Entendido, como aqui é um fórum livre de opinião acredito que vale a pena uma discussão sadia para que o autor do post tome a descisão de qual dos argumentos lhe cai melhor... afinal de contas, no mundo da informação existe uma única forma de se resolver o mesmo problema???


10. Re: MySQL

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 11/11/2012 - 16:42h

As vezes os processos mais massantes e demorados são os que dão melhores resultados...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts