找了半天没有找到对应的函数可以使用,于是自己了一个简单的函数
- DELIMITER $$
- USE `test`$$
- DROP FUNCTION IF EXISTS `idToChar`$$
- CREATE DEFINER=`sucre`@`localhost` FUNCTION `idToChar`(`str` INT) RETURNS VARCHAR(10) CHARSET gbk
- BEGIN
- DECLARE str1 VARCHAR(1) DEFAULT '';
- DECLARE return_str VARCHAR(255) DEFAULT '';
- DECLARE i INT DEFAULT 1;
- WHILE i <5 DO
- SET str1 = SUBSTRING(str,i,1);
- CASE str1
- WHEN '0' THEN SET str1 ="a";
- WHEN '1' THEN SET str1 ="b";
- WHEN '2' THEN SET str1 ="c";
- WHEN '3' THEN SET str1 ="d";
- WHEN '4' THEN SET str1 ="e";
- WHEN '5' THEN SET str1 ="f";
- WHEN '6' THEN SET str1 ="g";
- WHEN '7' THEN SET str1 ="h";
- WHEN '8' THEN SET str1 ="i";
- WHEN '9' THEN SET str1 ="g";
- END CASE;
- SET return_str = CONCAT(return_str,str1);
- SET i = i +1;
- END WHILE;
- RETURN return_str;
- END$$
- DELIMITER ;
输入4个数字
- SELECT idToChar(1039)
结果为
- badg
没有什么难度,但是这样可以取代原先用以数字自动增长做为区分的标识,以前用ql1039做为唯一标识,现在就可以用qlbadg做为唯一标识了。