现有数据表UD40,字段Key1、Character01为varchar类型,
如据如下
Key1 Character01
3
10
11
2 te11s222t
3 3te11s222t
4 4te11s222t
5
6
7
8
9
1
最新插入的一条语句Key1为11,
我想找出最新插入的一条语句,用
SELECT MAX(Key1) AS MAX_Key1 FROM UD40
结果应该是
MAX_Key1
11但为何实际却是
MAX_Key1
9
如据如下
Key1 Character01
3
10
11
2 te11s222t
3 3te11s222t
4 4te11s222t
5
6
7
8
9
1
最新插入的一条语句Key1为11,
我想找出最新插入的一条语句,用
SELECT MAX(Key1) AS MAX_Key1 FROM UD40
结果应该是
MAX_Key1
11但为何实际却是
MAX_Key1
9
你用order by Key1 这样就能看见他们是怎么排序的了,呵呵
因为是VARCHAR
SELECT ASCII('1')
SELECT ASCII('9')
-----------
49(所影响的行数为 1 行)
-----------
49(所影响的行数为 1 行)
-----------
57(所影响的行数为 1 行)
13楼的解释很好的说明了这个问题 ,学习...
正解 varchar类型是按字符依次进行排列的 11<12<21< 5... < 9
改字段类型为int