MySQL - max (столбец) +1 в varchar только для целых чисел - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть столбец с целыми числами, такими как 0000000001, 0000000002 и иногда xxxxxxxxxx в типе длины varchar 10. Мне нужно получить максимум (столбец) +1 только или 0000000002, чтобы следовать за 0000000003. но теперь, потому что внутри него xxxxxxxxxxначинается снова в 0000000001.

ВЫБРАТЬ макс. (ID) + 1

1 Ответ

0 голосов
/ 12 февраля 2019

При добавлении числа в строку, которая не является числом, будет возвращено число.

'foo' + 42 = 42

И поскольку вы выбираете MAX(ID), он возвращает 'xxxxxxxxxx'.

Самое простое решение для этого - настроить этот расчет нанемного.

SELECT max(ID+1) from yourtable

Потому что таким образом, 1, который возвращается из этого 'xxxxxxxxxx' + 1, не будет MAX.

Или выберите те, которые выше 0.

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