Có vẻ như bạn đang lưu trữ số giá trị dưới dạng chuỗi. Bạn thực sự nên sửa dữ liệu. Tuy nhiên, bạn có thể sửa chữa truy vấn. Theo tôi, phương pháp đơn giản nhất là chuyển đổi ngầm định:
SELECT MIN(`temp_min` + 0) AS `temp_min`,
MAX(`temp_max` + 0) AS `temp_max`,
`dt_txt`, DAYNAME(`dt_txt`) AS `dayname`,
`pressure`, `condition`, `dt_txt`
FROM infoboard.forecasts
WHERE `dt_txt` >= CURDATE()
GROUP BY `dt_txt`
ORDER BY `dt_txt` ASC;
Lưu ý rằng pressure
và condition
không nằm trong GROUP BY
của bạn , vì vậy các giá trị được chọn từ các hàng tùy ý. Đây là một phương pháp thực sự tồi và có nghĩa là truy vấn của bạn sẽ không hoạt động trong hầu hết các cơ sở dữ liệu khác.
Bạn có thể sửa dữ liệu bằng cách làm như sau:
alter table infoboard.forecasts
modify column temp_min decimal(6, 3),
modify column temp_max decimal(6, 3);
Tôi nghi ngờ bạn cũng muốn làm điều tương tự đối với pressure
nữa.