Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Query não parece estar gerando expectativas


Você está obtendo essa linha porque está comparando strings. "500" >= "60" é verdadeiro, devido à ordem dos caracteres ASCII.

Você precisa alterar o tipo dos minutes coluna ou analisar o valor ao filtrar dados. Por exemplo.
SELECT *, CONVERT(minutes,UNSIGNED INTEGER) AS minutes_int
...
WHERE
...
AND `minutes_int` >= 600
...

Como também pode tentar comparar o valor da string com o valor inteiro diretamente, por exemplo.
AND `minutes` >= 600

removendo as vírgulas, mas sugiro que você pense em mudar o formato da coluna, se possível, já que representa os minutos como um varchar(11) não está correto e também fará com que você ocupe muito espaço sem motivo.