Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Query scheint keine Erwartungen auszugeben

Sie erhalten diese Zeile, weil Sie Zeichenfolgen vergleichen. "500" >= "60" ist wahr, wegen der Reihenfolge der ASCII-Zeichen.

Sie müssen den Typ der minutes ändern Spalte oder analysieren Sie den Wert beim Filtern von Daten. Bsp.

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

Als könnte man auch versuchen, den String-Wert direkt mit dem Integer-Wert zu vergleichen, zB.

AND `minutes` >= 600

indem Sie die Kommas entfernen, aber ich schlage vor, dass Sie, wenn möglich, über eine Änderung des Spaltenformats nachdenken, da Minuten als varchar(11) dargestellt werden ist nicht korrekt und wird auch dazu führen, dass Sie ohne Grund viel Platz belegen.