2015-06-19 2 views
0

У меня есть код VARCHAR поле, которое я хочу автоинкремент, если пользователь не предоставляет собственный код. Например:Как получить наибольшее число в SQL

`code` 
- '5' 
- '8' 
- 's987' 
- '981A' 

В этом случае самое большое (чистое) число будет 8, поэтому я хочу, чтобы Autoincrement до 9. Как мне это сделать? Итак, я хочу:

(1) Получите наибольшее количество (даже если оно сохранено как VARCHAR), которое в настоящее время находится в моей таблице. В приведенных выше записях 8 будет наибольшим числом, поскольку s987 и 981A являются недопустимыми числами. (2) Добавьте одно к этому номеру, чтобы получить новый номер автоинкремента.

+0

не достаточно ясно, вы можете уточнить? – Lupin

+0

MAX (код) ... ГДЕ код REGEXP '^ [0-9] + $' ' – Mihai

ответ

1

попробовать это

SELECT max(CAST(code AS UNSIGNED))+1 FROM myTable WHERE code REGEXP '[0-9]+'; 
0

Попробуйте it-

SELECT MAX(code)+1 FROM table_name WHERE code REGEXP '^[[:alnum:]]+$' AND code*1>0; 
Смежные вопросы