我想在MySQL中增加一个字符串值。它将在查询中用于获取第一个可用值。
我尝试使用基数为36的CONV(...)
,但并不涵盖所有情况。根据一些内部参数,字符串可以具有不同的结构。
可能的结构:
pattern | sample | incremented
----------------------------|--------------|-------------------
([0-9]+) | 1239 | 1240
([A-Z]+) | ABCD | ABCE
([0-9]+)([A-Z]+) | 1234A | 1234B
([A-Z]+)([0-9]+) | ABCD1 | ABCD2
([A-Z]+)-([0-9]+)-([A-Z]+) | ABCD-1239-Z | ABCD-1240-A
etc. | |
在MySQL可以吗?
答案 0 :(得分:5)
一个简短的回答:不。
答案很长:您可以编写一个执行此操作的存储过程(或使用PHP / JAVA / ...执行此操作)。但仍然很难,因为没有明确的规则如何增加字符串。
以你的最后一个例子:ABCD-1239-Z到ABCD-1240-A 您需要一个查找规则 - 在字符串中并且永远不会更改它,但之前更改字符,将它们作为数字处理!
让我给出另一种可能的模式(可能会发生这种情况):Z-Z 怎么增加这个?它会变成AA-A还是1A-A或Z-AA?
如果你需要增加,而不是坚持一个数字。其他一切都会让你陷入困境。