sumocoski Postado Maio 30, 2009 Denunciar Share Postado Maio 30, 2009 (editado) Olá amigos, estou usando mysql 5.1, e estou puxando valores com order by e eles não estão certos nem em ASC ou DESC.Ai olhei no phpmyadmim e também estão assim.No navicat mesma coisa, não ordena do valore menor para o maior e vice versa corretamente.1 - 2 - 3 - 4 ....fica2 - 4 - 1 - 3 ....veja a busca no php:SELECT * FROM usuarios ORDER BY money DESC LIMIT 1Mas o erro se apresenta no php, phpmyadmin e navicat.Obrigado! Editado Maio 30, 2009 por sumocoski Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcus Nunes Postado Maio 30, 2009 Denunciar Share Postado Maio 30, 2009 qual o tipo do campo? Link para o comentário Compartilhar em outros sites More sharing options...
0 sumocoski Postado Junho 1, 2009 Autor Denunciar Share Postado Junho 1, 2009 (editado) Percebi uma coisa aqui, ele ordena pelo primeiro número e não pelo total ou seja:300 é maior que 96 certo, mas ele mostra assim:968967689524897300211203Viram, ele ordena pela primeira casa e não pelo numero em si.Como ajeitar isso, vlw! Editado Junho 1, 2009 por sumocoski Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 1, 2009 Denunciar Share Postado Junho 1, 2009 Oi, 'sumocoski'Seu campo está como string (varchar ou char) por isso está ordenando errado. Pois a string que começa com "9" em "96" é maior que a string que começa com "3" em "300". Solução: mude o tipo do campo para numérico. Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcus Nunes Postado Junho 2, 2009 Denunciar Share Postado Junho 2, 2009 O MySQL ordena seguindo a tabela ASCII.Como disse o Denis, seu campo está como algum tipo de string. Se for ordená-lo com números, o campo precisa ser númerico. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
sumocoski
Olá amigos, estou usando mysql 5.1, e estou puxando valores com order by e eles não estão certos nem em ASC ou DESC.
Ai olhei no phpmyadmim e também estão assim.
No navicat mesma coisa, não ordena do valore menor para o maior e vice versa corretamente.
1 - 2 - 3 - 4 ....
fica
2 - 4 - 1 - 3 ....
veja a busca no php:
SELECT * FROM usuarios ORDER BY money DESC LIMIT 1
Mas o erro se apresenta no php, phpmyadmin e navicat.
Obrigado!
Editado por sumocoskiLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados