sql >> Databasteknik >  >> RDS >> Mysql

MySQL Query verkar inte ge förväntningar

Du får den raden för att du jämför strängar. "500" >= "60" är sant, på grund av ASCII-teckens ordning.

Du måste ändra typen av minutes kolumn eller analysera värdet vid filtrering av data. T.ex.

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

Du kan också försöka jämföra strängvärdet med heltalsvärdet direkt, t.ex.

AND `minutes` >= 600

genom att ta bort kommatecken, men jag föreslår att du funderar på att ändra kolumnformatet, om möjligt, eftersom det representerar minuter som en varchar(11) är inte korrekt och kommer också att få dig att ta upp mycket utrymme utan anledning.



  1. sql-fråga för att konvertera ett nytt linjetecken till en html

  2. Sätt upp en stor databas i MySQL för analys i R

  3. Skicka en array från PHP till Javascript med JQuery &JSON

  4. OVER-klausul i Oracle