日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql文本自动递增_mysql-如何创建自动递增的字符串?

發(fā)布時(shí)間:2024/1/23 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql文本自动递增_mysql-如何创建自动递增的字符串? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡短答案-使用此查詢:

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 |

只是為了好玩,我寫了這個(gè)存儲(chǔ)過程,它生成的數(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。