Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn MySQL dường như không đạt được kỳ vọng

Bạn đang nhận được hàng đó bởi vì bạn đang so sánh các chuỗi. "500" >= "60" là đúng, vì thứ tự các ký tự ASCII.

Bạn phải thay đổi loại minutes hoặc phân tích cú pháp giá trị khi lọc dữ liệu. Ví dụ:

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

Cũng có thể thử so sánh trực tiếp giá trị chuỗi với giá trị số nguyên, ví dụ:

AND `minutes` >= 600

bằng cách xóa dấu phẩy, nhưng tôi khuyên bạn nên nghĩ đến việc thay đổi định dạng cột, nếu có thể, vì biểu thị phút dưới dạng varchar(11) không đúng và cũng sẽ khiến bạn chiếm nhiều dung lượng mà không có lý do.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Yếu tố quyết định ứng viên có đủ tốt cho BCNF không?

  2. Tối ưu hóa MySQL cho ALTER TABLE của InnoDB

  3. Làm cách nào để sử dụng jQuery để chạy các truy vấn MySQL?

  4. Rò rỉ bộ nhớ Java MySQL JDBC

  5. MySQL wait_timeout không được chấp nhận cho truy vấn dài?