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

时间:2019-02-12 16:39:50

标签: mysql integer max varchar

我有一列整数,例如0000000001、0000000002,有时还用长度为10的varchar类型的xxxxxxxxxx。 我需要只获得max(column)+1或0000000002,以便遵循0000000003。 但现在是因为里面的xxxxxxxxxx再次从0000000001开始。

选择max(ID)+1

1 个答案:

答案 0 :(得分:0)

在非数字的字符串中添加数字时,它将返回该数字。

'foo'+ 42 = 42

由于您选择了MAX(ID),因此它会返回“ xxxxxxxxxx”。

最简单的解决方法是对计算进行一些调整。

SELECT max(ID+1) from yourtable

因为那样,从“ xxxxxxxxxx” +1返回的1不会成为最大值。

或选择大于0的那些。

select LPAD(MAX(ID)+1, 10, '0') 
from yourtable
where id > 0