Du verkar lagra numeriska värden som strängar. Du borde verkligen fixa datan. Men du kan fixa frågan. Enligt min mening är den enklaste metoden implicit konvertering:
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;
Observera att pressure
och condition
är inte i din GROUP BY
, så värden väljs från godtyckliga rader. Detta är en riktigt dålig praxis och betyder att din fråga inte skulle fungera i nästan vilken annan databas som helst.
Du kan fixa data genom att göra något som:
alter table infoboard.forecasts
modify column temp_min decimal(6, 3),
modify column temp_max decimal(6, 3);
Jag misstänker att du skulle vilja göra detsamma för pressure
likaså.