mysql文本自动递增_mysql-如何创建自动递增的字符串?
簡短答案-使用此查詢:
SELECT id AS PrevID,CONCAT(
SUBSTRING(id,1,4),IF(CAST(SUBSTRING(id,5) AS UNSIGNED) <= 9,'0',''),CAST(SUBSTRING(id,5) AS UNSIGNED) + 1
) AS NextID
FROM (
-- since you allow strings such as AAAA20 and AAAA100 you can no longer use MAX
SELECT id
FROM t
ORDER BY SUBSTRING(id,4) DESC,5) AS UNSIGNED) DESC
LIMIT 1
) x
結(jié)果:
| PrevID | NextID |
| AAAA100 | AAAA101 |
| AAAA21 | AAAA22 |
| AAAA06 | AAAA07 |
只是為了好玩,我寫了這個存儲過程,它生成的數(shù)字看起來像AAAA00 AAAA99 AAAB00等:
CREATE FUNCTION NextID(PrevID VARCHAR(6))
RETURNS VARCHAR(6)
BEGIN
DECLARE s VARCHAR(4);
DECLARE i INT;
DECLARE j INT;
SET s = LEFT(PrevID,4);
SET s = REPLACE(s,'A','0');
SET s = REPLACE(s,'B','1');
SET s = REPLACE(s,'C','2');
SET s = REPLACE(s,'D','3');
SET s = REPLACE(s,'E','4');
SET s = REPLACE(s,'F','5');
SET s = REPLACE(s,'G','6');
SET s = REPLACE(s,'H','7');
SET s = REPLACE(s,'I','8');
SET s = REPLACE(s,'J','9');
SET s = REPLACE(s,'K','A');
SET s = REPLACE(s,'L','B');
SET s = REPLACE(s,'M','C');
SET s = REPLACE(s,'N','D');
SET s = REPLACE(s,'O','E');
SET s = REPLACE(s,'P','F');
SET s = REPLACE(s,'Q','G');
SET s = REPLACE(s,'R','H');
SET s = REPLACE(s,'S','I');
SET s = REPLACE(s,'T','J');
SET s = REPLACE(s,'U','K');
SET s = REPLACE(s,'V','L');
SET s = REPLACE(s,'W','M');
SET s = REPLACE(s,'X','N');
SET s = REPLACE(s,'Y','O');
SET s = REPLACE(s,'Z','P');
SET i = RIGHT(PrevID,2);
SET j = CONV(s,26,10);
SET i = i + 1;
IF i > 99 THEN
SET i = 0;
SET j = j + 1;
END IF;
SET s = CONV(j,10,26);
SET s = REPLACE(s,'Z');
SET s = REPLACE(s,'Y');
SET s = REPLACE(s,'X');
SET s = REPLACE(s,'W');
SET s = REPLACE(s,'V');
SET s = REPLACE(s,'U');
SET s = REPLACE(s,'T');
SET s = REPLACE(s,'S');
SET s = REPLACE(s,'R');
SET s = REPLACE(s,'Q');
SET s = REPLACE(s,'P');
SET s = REPLACE(s,'9','8','7','6','5','4','3','2','1','A');
RETURN CONCAT(LPAD(s,4,'A'),LPAD(i,2,'0'));
END
SELECT NextID('AAAA01') -- AAAA02
SELECT NextID('AAAA99') -- AAAB00
SELECT NextID('AAAB99') -- AAAC00
SELECT NextID('AAAZ99') -- AABA00
總結(jié)
以上是生活随笔為你收集整理的mysql文本自动递增_mysql-如何创建自动递增的字符串?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: debian 8 mysql_在Debi
- 下一篇: mysql putty 备份_Linux