Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Query non sembra generare aspettative

Stai ottenendo quella riga perché stai confrontando le stringhe. "500" >= "60" è vero, a causa dell'ordine dei caratteri ASCII.

Devi cambiare il tipo dei minutes colonna o analizzare il valore durante il filtraggio dei dati. Es.

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

Come potresti anche provare a confrontare direttamente il valore della stringa con il valore intero, ad es.

AND `minutes` >= 600

rimuovendo le virgole, ma ti consiglio di pensare a cambiare il formato della colonna, se possibile, poiché rappresenti i minuti come varchar(11) non è corretto e ti farà anche occupare molto spazio senza motivo.