我的S_ID值为
S_1
S_2
S_3,...., S_11.
我使用SELECT MAX(S_ID) FROM stock_detail
来获取最大值。
它一直工作到S_9但是当它到达S_11时:该查询只给我S_9作为最大值。如何将S_11作为最大值?请帮帮我,我只是编程的初学者。
答案 0 :(得分:1)
您可以使用此构造获得最大值:
select s_id
from stock_detail
order by length(s_id) desc, s_id desc
limit 1;
这会将较长的值放在第一位。
如果您想使用max()
,那么您需要解构数字。类似的东西:
select concat('S_', max(replace(s_id, 'S_', '') + 0))
from stock_detail;
这允许您获得数字最大值而不是字符最大值,这是您问题的根源。