2015-10-22 140 views
0

中倒置我不知道为什么我有这个,但是当我尝试获取min和max时,我收到错误的响应!Min和Max在MySQL

下面是该日期的内容:

enter image description here

这里是我的MySQL的请求:

SELECT min(`value`),max(`value`) FROM weather_data WHERE `date`="2015-10-22" AND `type`="temperature" 

但MySQL的请求的响应是这样的: http://puu.sh/kTr1q/af165a2dd9.png

你知道我为什么有这个回应吗?

+1

第二张图像与第一张相同 – Alex

+1

“价值”的类型是什么?让我猜 - CHAR? – Bohdan

+0

狗屎,但我知道为什么我收到这个错误对不起,这是因为我使用,而不是。浮点值 –

回答

0

它看起来像value被表示为一个字符串。所以,愉快地,min()max()工作正常。

如果值可以在系统上进行转换,你可以使用:

SELECT min(`value` + 0), max(`value` + 0) 
FROM weather_data 
WHERE `date` = '2015-10-22' AND `type` = 'temperature'; 

+会做沉默的转换。如果最小值和最大值都返回0,则逗号不认可,所以用句点替换它们:

SELECT min(replace(`value`, ',', '.') + 0), max(replace(`value`, ',', '.') + 0) 
FROM weather_data 
WHERE `date` = '2015-10-22' AND `type` = 'temperature'; 
1

请注意,您必须在您的查询的WHERE子句。您的查询实际上做的是选择日期为提及日期的行(1行),然后从该行中选择最大值和最小值(实际数据)

正确的查询看起来像这样:

SELECT分钟(value),MAX(value)FROM weather_data WHERE type = “温度”

请阅读有关数据类型过于其他职位。

1

您必须将数据类型从字符串更改为数字类型:float或decimal。