发布网友 发布时间:2022-05-01 17:30
共4个回答
懂视网 时间:2022-05-01 21:52
Create Table testTable( 2 id vachar(36), 3 code1 varchar(36), 4 PRIMARY KEY(id) 5 ) 6 INSERT INTO testTable(id,code1) VALUES (1,1.1),(2,1.2),(3,1.3),(4,1.4),(5,1.5),(6,1.6),(7,1.7),(8,1.8),(9,1.9),(10,1.10),(11,1.11)
实现方法:
1 SELECT MAX(CONVERT(id,SIGNED))+1, 2 CONCAT(SUBSTRING_INDEX(code1,‘.‘,1),‘.‘,MAX(CONVERT(SUBSTRING_INDEX(code1,‘.‘,-1),SIGNED))+1) 3 FROM testTable
所用SQL函数:
CONCAT(Str1,str2,str3,.....)连接字符串函数
CONVERT(str,SIGNED) 将str转化成数字类型
CONVERT(data_type,getDate(),1)将数据类型dateTime转化成字符串
SUBSTRIING_INDEX(str,分隔符,n) n代表第几个分隔符,n为正数,截取左边;n为负数,截取右边。分隔符‘.‘,‘,‘,用引号括起来
SUBSTRING(expression,start,length) 举例:SUBSTRING("abcdef",2,3) 结果:bcd
数据库字符串的处理
标签:length div bcd 数据 signed 数据类型 weight pre 连接
热心网友 时间:2022-05-01 19:00
其实你的两种方案都可以,第二种也挺好的,以前我一般都用方案一那种,都存到数据库里,我没有测试过超长字符串存到数据库中的查询效率,和内存问题,不过你也可以这两种方案都用,过大的就存文件,小的就存数据库,用个字段做标识就行热心网友 时间:2022-05-01 20:18
其实热心网友 时间:2022-05-01 21:52
存成text就行了