Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Query ne semble pas générer d'attentes

Vous obtenez cette ligne parce que vous comparez des chaînes. "500" >= "60" est vrai, en raison de l'ordre des caractères ASCII.

Il faut changer le type des minutes colonne ou analysez la valeur lors du filtrage des données. Par exemple.

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

Comme vous pouvez également essayer de comparer directement la valeur de la chaîne à la valeur entière, par exemple.

AND `minutes` >= 600

en supprimant les virgules, mais je vous suggère de penser à changer le format des colonnes, si possible, puisque représenter les minutes sous la forme d'un varchar(11) n'est pas correct et vous fera également occuper beaucoup d'espace sans raison.