Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando executar uma query para retornar pra mim qual o valor minimo de uma coluna:
SELECT MIN(nfatura) as nfatura_min FROM `financeiro` WHERE pedido = "857087" AND situacao = 'N';
O problema é que ela me retorna como menor valor 10
Spoiler

Só que esse não é o menor valor. Como podem ver no select abaixo, o menor valor pra essa coluna é 2 segundo as cláusulas que coloquei:
Spoiler

Onde está o erro?>
11 minutos atrás, Fernando C disse:
erro nenhum, caso a coluna seja tipo string.
tente mudar p/ 1 tipo numerico, como int por exemplo
>
11 minutos atrás, Fernando C disse:
erro nenhum, caso a coluna seja tipo string.
tente mudar p/ 1 tipo numerico, como int por exemplo
SELECT nfatura FROM `financeiro` WHERE pedido = "857087" AND situacao = 'N' ORDER BY nfatura ASC LIMIT 1;>
8 horas atrás, Fernando C disse:
erro nenhum, caso a coluna seja tipo string.
tente mudar p/ 1 tipo numerico, como int por exemplo
Era esse mesmo o problema, estava como varchar o campo
Uma outra alternativa é somar com 0 (zero) o valor da coluna, assim o MySql faz o CAST automatico para INT.
Assim não precisaria alterar o tipo do campo, que as vezes pode gerar impacto em outra parte do sistema.
Teste no Fiddle:
CREATE TABLE Persons (
PersonID varchar(255)
);
INSERT INTO Persons (PersonID) VALUES ('1'),('2222'),('3'),('4'),('5');
SELECT MAX(PersonID + 0) FROM Persons>
Em 10/08/2018 at 16:48, Uerlen Santos disse:
Uma outra alternativa é somar com 0 (zero) o valor da coluna, assim o MySql faz o CAST automatico para INT.
Assim não precisaria alterar o tipo do campo, que as vezes pode gerar impacto em outra parte do sistema.
Teste no Fiddle:
CREATE TABLE Persons (
PersonID varchar(255)
);
INSERT INTO Persons (PersonID) VALUES ('1'),('2222'),('3'),('4'),('5');
SELECT MAX(PersonID + 0) FROM Persons
Muito obrigado pelo dica, bom saber disso, pode ser útil, mas nesse caso alterar o tipo do campo era a melhor solução mesmo, não utilizo em mais lugar nenhum os dados desse campo, somente nessa tabela mesmo. E como ela só pode receber número inteiros via verificação no script PHP não teria porque deixar o campo como varcharTrabalhe com o tipo correto , evita complicações desnecessárias.
erro nenhum, caso a coluna seja tipo string.
tente mudar p/ 1 tipo numerico, como int por exemplo