Mysql varchar as int max value

时间:2014-04-02 06:58:32

标签: mysql compare varchar

需要一个返回maximal or minimum VARCHAR值的查询。比较为unsigned int,非int的值不会简单地考虑在内。

例如,

1
2
3
gggg123
435
500000.123

答案:maximum - 435, minimum - 1

NULL
fff
1
- 56

答案:maximum - 1, minimum - 1

1 个答案:

答案 0 :(得分:1)

由于您只需要正整数,您需要使用正数表示正数来提取列值,然后从中找到最大值

Select MAX(Cast(columnName) as UNSIGNED)
From tableName
Where columnName REGEXP '^[0-9]+$'

修改

正如Alma Do指出的那样,Mysql中不存在CAST到INT,而是它的等价物是UNSIGNED。

无论如何都不需要施放..

    Select MAX(columnName),MIN(columnName)
    From tableName
    Where columnName REGEXP '^[0-9]+$'