MySQL查询最大值问题

时间:2022-07-19 15:31:46
比如我有一张数据表:question
id  name    date                   。。。
1    张三   20120323015956001511
2    张三   20120323015956001511
3    张三   20120323015956001511
......

25    李四  20120323015956001511

id是字符串型(varchar),从1到25;
日期相同,这个不用考虑,只是一个查询字段;
为什么用下面那个查询语句只能查询出到最大值是9呢?
后面的10到25查询不到?
求高人指点?


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

12 个解决方案

#1


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

#2


那怎么解决啊,难道要改数据表类型

#3


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

#4


引用 3 楼 wwwwa 的回复:
select* from 
question WHERE 
date='20120323015956001511' 
结果是什么

就是1到25的数据

#5


ID修改为01-02。。。.09-25, OR 直接修改类型

#6


引用 5 楼 wwwwa 的回复:
ID修改为01-02。。。.09-25, OR 直接修改类型

数据类型就没办法改了  ,数据太多。你说id修改为01-02  .....  09-25 怎么写  汗

#7


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

#8


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

#9


引用 7 楼 jdgdf566 的回复:
id是字符串型(varchar)是设计错误。

因为id不是主键,只是原先的人这样命名

#10


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

#11


引用 10 楼 acmain_chm 的回复:
select max(id+0) as maxid 
from 
question
WHERE 
date='20120323015956001511'



解决了   谢谢了

#12


引用 10 楼 acmain_chm 的回复:
select max(id+0) as maxid 
from 
question
WHERE 
date='20120323015956001511'


学习了  

#1


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

#2


那怎么解决啊,难道要改数据表类型

#3


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

#4


引用 3 楼 wwwwa 的回复:
select* from 
question WHERE 
date='20120323015956001511' 
结果是什么

就是1到25的数据

#5


ID修改为01-02。。。.09-25, OR 直接修改类型

#6


引用 5 楼 wwwwa 的回复:
ID修改为01-02。。。.09-25, OR 直接修改类型

数据类型就没办法改了  ,数据太多。你说id修改为01-02  .....  09-25 怎么写  汗

#7


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

#8


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

#9


引用 7 楼 jdgdf566 的回复:
id是字符串型(varchar)是设计错误。

因为id不是主键,只是原先的人这样命名

#10


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

#11


引用 10 楼 acmain_chm 的回复:
select max(id+0) as maxid 
from 
question
WHERE 
date='20120323015956001511'



解决了   谢谢了

#12


引用 10 楼 acmain_chm 的回复:
select max(id+0) as maxid 
from 
question
WHERE 
date='20120323015956001511'


学习了