我有一个代码VARCHAR
字段,如果用户没有提供自己的代码,我想自动增加。例如:
`code`
- '5'
- '8'
- 's987'
- '981A'
在这种情况下,最大(纯)数字将是8,所以我想自动增加到9.我该怎么做?所以,我想:
(1)获取当前在我的表中的最大数字(即使它被存储为VARCHAR
)。在上面的条目中,8
将是最大的数字,因为s987
和981A
不是有效数字。
(2)在这个数字上加1,得到新的自动增量数。
答案 0 :(得分:1)
试试这个
SELECT max(CAST(code AS UNSIGNED))+1 FROM myTable WHERE code REGEXP '[0-9]+';
答案 1 :(得分:0)
试一试 -
SELECT MAX(code)+1 FROM table_name WHERE code REGEXP '^[[:alnum:]]+$' AND code*1>0;