需要一种查询,返回的VARCHAR
的maximal or minimum
值。比较为unsigned int
,值不是int不会简单地考虑在内。Mysql的VARCHAR作为INT最大值
例如,
1
2
3
gggg123
435
500000.123
答案:maximum - 435, minimum - 1
NULL
fff
1
- 56
答案:maximum - 1, minimum - 1
需要一种查询,返回的VARCHAR
的maximal or minimum
值。比较为unsigned int
,值不是int不会简单地考虑在内。Mysql的VARCHAR作为INT最大值
例如,
1
2
3
gggg123
435
500000.123
答案:maximum - 435, minimum - 1
NULL
fff
1
- 56
答案:maximum - 1, minimum - 1
自从你只需要你需要提取的列值采用正则表达式,其是正数的正整数然后从他们
找到马克斯Select MAX(Cast(columnName) as UNSIGNED)
From tableName
Where columnName REGEXP '^[0-9]+$'
编辑
正如指出阿尔玛做的,强制转换为int并不在MySQL存在,而不是它相当于是无符号的。
不管怎么说铸造这里不需要..
Select MAX(columnName),MIN(columnName)
From tableName
Where columnName REGEXP '^[0-9]+$'
再次失败(CAST这里_wrong_)。此外 - 'CAST'到'INT' _doesn't exist_ –
@AlmaDo ..是..纠正它.. –
@AlmaDo但WHERE条件会过滤掉这些值,由于正则表达式... –
这样 - 你需要比较仅是有效的整数值? –
为什么“最大--1,最小--1”? –
[*小提琴演示*](http://sqlfiddle.com/#!2/b90fa/5) –