需要一種查詢,返回的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) –