Java 如何提取数字?

Java 如何提取数字?,java,mysql,sql,primary-key,composite-primary-key,Java,Mysql,Sql,Primary Key,Composite Primary Key,我有一个这样的数据库: stockCode stockName stockStart stockFinish stockCurrentNumber __________________________________________________________ 100 Water 1 10 ? 现在我该如何编码,使它看起来像这样 stockCode stockName stockStart stockFinish stockC

我有一个这样的数据库:

stockCode stockName stockStart stockFinish stockCurrentNumber
__________________________________________________________
100       Water         1          10          ?
现在我该如何编码,使它看起来像这样

stockCode stockName stockStart stockFinish stockCurrentNumber
__________________________________________________________
100001       Water         1          10          001

100002       Water         1          10          002

100003       Water         1          10          003

100004       Water         1          10          004

100005       Water         1          10          005

100006       Water         1          10          006

100007       Water         1          10          007

100008       Water         1          10          008

100009       Water         1          10          009

100010       Water         1          10          010
如果有人能帮忙,我将不胜感激

抱歉,编辑,我只有一条记录,希望它在stockStart到stockFinish的范围内重复

SELECT   
CONCAT(`stockCode`,lpad(@sno + 1,3,0)) stockCode,
`stockName`, 
`stockStart`,
`stockFinish`,
@sno := lpad(@sno + 1,3,0) AS stockCurrentNumbe
FROM  Table1,
(SELECT @sno := 000) t
编辑

对于更新,您可以使用下面的查询创建新表(供参考),完成后,您可以将表重命名为实际表,下面的示例中,我使用了
int()
not smallint

CREATE TABLE Table2
    (`stockCode` int(11),
     `stockName` varchar(5),
     `stockStart` int,
     `stockFinish` int, 
     `stockCurrentNumber` int(11))
;
INSERT INTO Table2
    (`stockCode`, 
     `stockName`, 
     `stockStart`,
     `stockFinish`, 
     `stockCurrentNumber`)

SELECT   
CONCAT(`stockCode`,lpad(@sno + 1,3,'0')) stockCode, 
  `stockName`, 
  `stockStart`,
  `stockFinish`,
  @sno := lpad(@sno + 1,3,'0') AS stockCurrentNumber
FROM  Table1,
(SELECT @sno := 000) t
;
表2的
stockCurrentNumber
列中的数据将具有不带前导零的数据,因为数据类型为整数且001=1,因此对于前导零,您可以使用
lpad(stockCurrentNumber,3,'0')获取结果
有关更多信息,请参见查询,查询并不困难。我刚刚使用变量为
stockCurrentNumber
列生成自动递增值,并将自动递增值和
stockCode
等值组合为
CONCAT(
stockCode
,lpad(@sno+1,3,'0'))stockCode
,希望它有意义


第一列和最后一列的数据类型是什么?@BhupeshC它们都是
SMALLINT
。如何从stockStart到stockFinish提取所有数字并将其插入stockCurrentNumber?如果最后一列是SMALLINT,它如何显示前面的0?请粘贴表DDL Hi,请您向我解释一下这段代码。另外,如何将其作为update语句来执行?我试着在表1中插入值(CONCAT(stockCode
,lpad(@sno+1,3,0))stockCode,
stockName
stockStart
stockFinish
,@sno:=lpad(@sno+1,3,0)作为stockcurrentnumber
)`但我一直收到这个错误`你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第2行“对不起,”'stockCode、
stockName
stockStart
stockFinish
、@sno:=lpad(@sno+1,3,0))附近使用的正确语法,你能帮我修改你的代码,使它在我目前正在测试的更新数据库上工作吗please@user3138212你可以选择。。。。。。。。从……进入。。。。或者在表2中进行嵌套插入选择……………@user3138212查看我的更新答案并