2011-12-16 44 views
1

我在talbe中有這個列,因爲歷史原因是一個字符串,但現在新值被放入數字中。varchar列中的Mysql數字查詢問題

我必須找到從數字的間隔最大的價值,但該值在DB :(

字符串如果op_calcul將是一個數它本來普通SQL:

Select MAX(op_calcul) FROM nom_prod where op_calcul >=500 and op_calcul < 5000 

但讓他們爲varchar把我一些麻煩。

嘗試不同的情況,但並沒有拿出一個解決辦法呢。

任何提示?

感謝

回答

1
SELECT MAX(CAST(op_calcul as SIGNED)) FROM nom_prod... 

應該做的伎倆。您可能還需要轉換WHERE子句。

理想情況下,由於MAX和WHERE的性能原因,您應該使用整數列。它裏面是否有非數字或超出範圍的數據?如果不是,則更改列類型應該相當簡單。

+0

令人印象深刻!在10分鐘內投票解決。謝謝 – Cris 2011-12-16 09:44:38

+0

該列有像「code 12ac」等varchar歷史數據 – Cris 2011-12-16 09:45:31

1
SELECT MAX(CAST(`op_calcul` AS SIGNED)) 
FROM `nom_prod` 
WHERE `op_calcul` >= 500 
AND `op_calcul` < 5000;