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

MySQL Query ser ikke ud til at give forventninger

Du får den række, fordi du sammenligner strenge. "500" >= "60" er sandt på grund af ASCII-tegns rækkefølge.

Du skal ændre typen af ​​minutes kolonne eller parse værdien ved filtrering af data. F.eks.

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

Som kunne også prøve at sammenligne strengværdien med heltalsværdien direkte, f.eks.

AND `minutes` >= 600

ved at fjerne kommaerne, men jeg foreslår, at du overvejer at ændre kolonneformatet, hvis det er muligt, da det repræsenterer minutter som en varchar(11) er ikke korrekt og vil også få dig til at optage masser af plads uden grund.



  1. Hvordan henter man det næste element i en liste over MySQL-poster?

  2. Kalde MySQL-funktioner i Lithium

  3. MySQL GRUPPER AF en kolonne og vis værdier i forskellige kolonner

  4. MySQL:Optegnelser indsat pr. time, for de sidste 24 timer