select min(lead), max(lead)
from products
WHERE part_line != 90 and category = 'x'
当我运行上述查询时,返回的min大于最大值。如果我删除条件pline!= 90,问题就会消失。MYSQL为什么min会大于max?
我一开始想到mysql在处理min,max之前就已经处理了...但是这并不能解释为什么它会分配更高的分钟。
什么让我,当我得到avg()它正确计算。
发生了什么事?
select min(lead), max(lead)
from products
WHERE part_line != 90 and category = 'x'
当我运行上述查询时,返回的min大于最大值。如果我删除条件pline!= 90,问题就会消失。MYSQL为什么min会大于max?
我一开始想到mysql在处理min,max之前就已经处理了...但是这并不能解释为什么它会分配更高的分钟。
什么让我,当我得到avg()它正确计算。
发生了什么事?
也许你的领域被视为文本,以便,例如21会比3(排名不分先后)最小 如果字段为TEXT的类型尝试投值INT()
字段是数据类型varchar,转换为整数并解决问题! 感谢您的帮助 – payling 2010-07-27 19:54:43
这里是一个SQL Server例如:
with Test_CTE (first, second, third)
as(
select '21 ', 'b', 1
union
select '3 ', 'd', 2
)
select MIN(first) as Minimum, MAX(first) as Maximum
from Test_CTE
输出
Minimum Maximum
21 3
注意,值是文本数据和尾随空格,因此,其原因是各色排序现在从你如何可能预计。
得到的示例数据?听起来就像你在使用文本/字符串数据类型的列上运行MIN/MAX ... – 2010-07-27 19:37:56
其次,min/max适用于许多不同的数据类型,并且它们还有其他含义,检查数据类型或告诉我们使用什么数据类型:) – Nealv 2010-07-27 19:41:14
甚至没有想过检查,由于某种原因,我的领导领域被设置为varchar ...我改变为int和问题解决。拉着我的头发,从未遇到过这个问题。 OMG小马,发表一个答案,我会接受。 – payling 2010-07-27 19:44:04