MySQL - varchar中的max(列)+1仅用于整数

问题描述 投票:0回答:1

我有一个整数,如0000000001,0000000002,有时xxxxxxxxxx在varchar类型长度10中。我需要得到一个最大(列)+1或0000000002,以便跟随0000000003.但现在因为它内部的xxxxxxxxxx从0000000001开始再次。

SELECT max(ID)+1

mysql integer max varchar
1个回答
0
投票

将数字添加到不是数字的字符串时,它将返回该数字。

'foo'+ 42 = 42

因为你选择MAX(ID)它会返回'xxxxxxxxxx'。

对此最简单的解决方法是调整计算一点点。

SELECT max(ID+1) from yourtable

因为这样,从'xxxxxxxxxx'+ 1返回的1将不是MAX。

或者选择那些高于0的那些。

select LPAD(MAX(ID)+1, 10, '0') 
from yourtable
where id > 0
© www.soinside.com 2019 - 2024. All rights reserved.