比如我有一张数据表:question
id  name    date                   
1    张三   20120323015956001511
2    张三   20120323015956001511
3    张三   20120323015956001511
......25    李四  20120323015956001511id是字符串型(varchar),从1到25;
日期相同,这个不用考虑,只是一个查询字段;
为什么用下面那个查询语句只能查询出到最大值是9呢?
后面的10到25查询不到?
求高人指点?
select max(id) as maxid 
from 
question
WHERE 
date='20120323015956001511' 

解决方案 »

  1.   

    字符串类型大小比较是先比较首字符,然后依次往后的,9>8>...所以就是9了
      

  2.   

    select* from 
    question WHERE 
    date='20120323015956001511' 
    结果是什么
      

  3.   

    ID修改为01-02.09-25, OR 直接修改类型
      

  4.   

    id是字符串型(varchar)是设计错误。
      

  5.   

    假设只有2位数
    update tt set f1=right(concat('00',f1),2)
      

  6.   

    select max(id+0) as maxid 
    from 
    question
    WHERE 
    date='20120323015956001511'