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