Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wygląda na to, że MySQL Query nie spełnia oczekiwań

Dostajesz ten wiersz, ponieważ porównujesz ciągi. "500" >= "60" jest prawdziwe, ze względu na kolejność znaków ASCII.

Musisz zmienić typ minutes kolumny lub przeanalizuj wartość podczas filtrowania danych. Np.

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

Można również spróbować porównać bezpośrednio wartość ciągu z wartością całkowitą, np.

AND `minutes` >= 600

usuwając przecinki, ale sugeruję, abyś pomyślał o zmianie formatu kolumny, jeśli to możliwe, ponieważ reprezentują minuty jako varchar(11) nie jest poprawna i sprawi, że będziesz zajmował dużo miejsca bez powodu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zablokować tabele za pomocą zapalnika kodu?

  2. Innodb; wiele katalogów danych

  3. MySQL - Tabela 'my_table' nie została zablokowana za pomocą funkcji Lock Tables

  4. Tabela Mysql z indeksem złożonym, ale bez klucza podstawowego

  5. MySQL COUNT() w wielu kolumnach