sql >> Database >  >> RDS >> Mysql

MySQL Query lijkt geen verwachtingen te wekken

Je krijgt die rij omdat je strings vergelijkt. "500" >= "60" is waar, vanwege de volgorde van ASCII-tekens.

U moet het type van de minutes . wijzigen kolom of ontleden de waarde bij het filteren van gegevens. Bijv.

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

Zoals ook zou kunnen proberen de tekenreekswaarde rechtstreeks te vergelijken met de integerwaarde, bijv.

AND `minutes` >= 600

door de komma's te verwijderen, maar ik raad u aan na te denken over het wijzigen van de kolomindeling, indien mogelijk, aangezien minuten worden weergegeven als een varchar(11) is niet correct en zal u ook zonder reden veel ruimte in beslag nemen.



  1. Het totale aantal sloten overschrijdt de grootte van de slottafel

  2. Hoe krijg ik tekstuele inhoud van BLOB in Oracle SQL?

  3. Hoe tekst af te kappen met een ellips in MariaDB

  4. Minimale waarde MySQL-query