sql >> Base de Datos >  >> RDS >> Mysql

MySQL Query no parece estar generando expectativas

Obtiene esa fila porque está comparando cadenas. "500" >= "60" es cierto, debido al orden de los caracteres ASCII.

Tienes que cambiar el tipo de los minutes columna o analizar el valor al filtrar datos. Ej.

SELECT *, CONVERT(minutes,UNSIGNED INTEGER) AS minutes_int
...
WHERE
...
AND `minutes_int` >= 600
...

También podría intentar comparar el valor de la cadena con el valor entero directamente, por ejemplo.

AND `minutes` >= 600

eliminando las comas, pero le sugiero que piense en cambiar el formato de la columna, si es posible, ya que representa los minutos como varchar(11) no es correcto y además te hará ocupar mucho espacio sin razón.