MYSQL为什么min会大于max?

时间:2010-07-27 19:36:08

标签: sql mysql aggregate-functions

select min(lead), max(lead)
from products 
WHERE part_line != 90 and category = 'x'

当我运行上述查询时,返回的min大于max。如果我删除条件pline!= 90,问题就会消失。

我一开始认为mysql在进行pline之前正在处理min,max ...但这并不能解释为什么它会分配更高的min。

什么让我,当我得到avg()它正确计算。

发生了什么事?

2 个答案:

答案 0 :(得分:8)

也许您的字段被视为文本,例如21将小于3(字母顺序) 如果该字段是TEXT的类型,则尝试将值转换为INT()

答案 1 :(得分:0)

这是一个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  

请注意,值是带有尾随空格的文本数据,因此它的排序方式与可能期望的方式不同。