Min和Max在MySQL中是反转的

时间:2015-10-22 13:13:59

标签: mysql

我不知道为什么我会这样,但是当我尝试获得最小值和最大值时,我收到了错误的响应!

以下是此日期的内容:

enter image description here

这是我的MySQL请求:

SELECT @liststr = CONCAT(@liststr, ',', name) FROM comma
SELECT @liststr AS myString 

但MySQL请求的响应如下: http://puu.sh/kTr1q/af165a2dd9.png

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

3 个答案:

答案 0 :(得分:1)

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

正确的查询如下所示:

  

SELECT min(value),max(value)FROM weather_data WHERE type =“temperature”

请阅读有关数据类型的其他帖子。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

看起来value表示为字符串。所以,很高兴min()max()正常运作。

如果可以在系统上转换值,则可以使用:

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

+将执行静默转换。如果min和max都返回0,则无法识别逗号,因此请用句点替换它们:

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